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

R中变量的大小写例如SPSS

如何解决R中变量的大小写例如SPSS

我正在尝试根据特定列将行分布在多个列上。 结果应为具有唯一recordid和一组列的数据框 根据另一列中的唯一值。

recordid location measA measB measC
     1     body  <NA>     5  <NA>
     2     body  <NA>   >10 text1
     2     head  <0.1  <0.1  <NA>
     3     body  0.02   0.5 text2
     3     head  <NA>  <NA> text3
     3     toes  <0.1  <0.1   >20

在这里,位置变量是测量列的分组。结果应该是这样的:

recordid measA_body measA_head measA_toes measB_body measB_head measB_toes measC_body measC_head measC_toes
     1         <NA>     <NA>       <NA>          5       <NA>       <NA>       <NA>       <NA>       <NA>
     2         <NA>     <0.1       <NA>        >10       <0.1       <NA>      text1       <NA>       <NA>
     3         0.02     <NA>       <NA>        0.5       <NA>       <NA>      text2      text3       >20

在SPSS中,这是在重组菜单中变量函数的情况,但我在R中找不到某种模拟函数。我尝试了某种形式的ivot_wider,但无法使其在多列上工作。在R中执行此操作的最佳方法是什么?

解决方法

您可以执行以下操作:

library(dplyr)
df %>%  pivot_wider(names_from = location,values_from = c(measA,measB,measC))
# A tibble: 3 x 10
  recordid measA_body measA_head measA_toes measB_body measB_head measB_toes
     <int> <chr>      <chr>      <chr>      <chr>      <chr>      <chr>     
1        1 <NA>       <NA>       <NA>       5          <NA>       <NA>      
2        2 <NA>       <0.1       <NA>       >10        <0.1       <NA>      
3        3 0.02       <NA>       <0.1       0.5        <NA>       <0.1      
# ... with 3 more variables: measC_body <chr>,measC_head <chr>,#   measC_toes <chr>

有数据:

df <-
structure(list(recordid = c(1L,2L,3L,3L),location = c("body","body","head","toes"),measA = c("<NA>","<NA>","<0.1","0.02","<0.1"),measB = c("5",">10","0.5",measC = c("<NA>","text1","text2","text3",">20")),class = "data.frame",row.names = c(NA,-6L
))

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