微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用重整形将R中的数据帧从长更改为宽未定义列错误

如何解决使用重整形将R中的数据帧从长更改为宽未定义列错误

我试图制作一个长表,同时创建唯一的变量以保留粒度细节,即将变量与序列变量var1.seq1 var1.seq2组合

重塑似乎是我的救星,但我不断遇到未定义的列选择错误

n.b。为了简单起见,我没有将样本数据包含完整的序列号,但是它们最多可以包含180个。

数据示例可在github here

上获得
Country     Percentage   
US          50      
UK          50
DE          100
AU          100

reshape(df,idvar = "MergeEncounterRecno",timevar = "Sequenceno",direction = "wide") (数据,timevar)中的错误:未定义的列已选中

解决方法

它看起来像是一个错字。试试这个:

#Code
dfres <- reshape(df,idvar = "MergeEncounterRecno",timevar = "SequenceNo",direction = "wide")
,

下面是使用枢轴更长的示例:

是否要旋转列NationalDiagnosis,然后使用第二个透视功能将values转换为字符(而不是数字)。

library(tidyverse)

df <- read_csv("https://raw.githubusercontent.com/Chazzer90/stackoverflowhelp2/main/SEQ_anom.csv")
#> Parsed with column specification:
#> cols(
#>   `<ef>..MergeRecno` = col_double(),#>   MergeEncounterRecno = col_double(),#>   SequenceNo = col_double(),#>   DiagnosticSchemeCode = col_double(),#>   DiagnosisCode = col_double(),#>   DiagnosisSiteCode = col_character(),#>   NationalDiagnosisCode = col_double(),#>   NationalDiagnosis = col_character()
#> )

df %>% 
  mutate(DiagnosisSiteCode = as.integer(ifelse(DiagnosisSiteCode == "NULL",NA,DiagnosisSiteCode))) %>% 
  pivot_longer(cols = DiagnosticSchemeCode:NationalDiagnosisCode,names_to = 'variables',values_to = 'Values',values_drop_na = TRUE,names_ptypes = list(Values = integer()))
#> # A tibble: 134 x 6
#>    `\xef..MergeRec~ MergeEncounterR~ SequenceNo NationalDiagnos~ variables
#>               <dbl>            <dbl>      <dbl> <chr>            <chr>    
#>  1              402           545353          1 Muscle/tendon i~ Diagnost~
#>  2              402           545353          1 Muscle/tendon i~ Diagnosi~
#>  3              402           545353          1 Muscle/tendon i~ Diagnosi~
#>  4              402           545353          1 Muscle/tendon i~ National~
#>  5              758           261891          1 Cardiac conditi~ Diagnost~
#>  6              758           261891          1 Cardiac conditi~ Diagnosi~
#>  7              758           261891          1 Cardiac conditi~ National~
#>  8              894           941852          1 Respiratory con~ Diagnost~
#>  9              894           941852          1 Respiratory con~ Diagnosi~
#> 10              894           941852          1 Respiratory con~ Diagnosi~
#> # ... with 124 more rows,and 1 more variable: Values <dbl>

## do you want to pivot the column NationalDiagnosis
df %>% 
  mutate(DiagnosisSiteCode = as.integer(ifelse(DiagnosisSiteCode == "NULL",DiagnosisSiteCode))) %>% 
  pivot_longer(cols = DiagnosticSchemeCode:NationalDiagnosis,values_transform = list(Values = as.character))

reprex package(v0.3.0)于2020-10-21创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。