可能是个简单的问题:
我想在这个data.frame上使用gather_。
set.seed(1)
df <- data.frame(a=rnorm(10),b=rnorm(10),d=rnorm(10),id=paste0("id",1:10))首先,使用gather
df %>% tidyr::gather(key=name,value=val,-id)给我想要的结果。
但是,尝试像这样将其与gather_匹配:
df %>% tidyr::gather_(key_col="name",value_col="val",gather_cols="id")并没有给出gather的用法。
有什么想法吗?
发布于 2018-12-05 21:16:30
我想你想:
df %>% tidyr::gather_(key_col="name",value_col="val",gather_cols= c('a', 'b', 'd'))
id name val
1 id1 a -0.62645381
2 id2 a 0.18364332
3 id3 a -0.83562861
4 id4 a 1.59528080
5 id5 a 0.32950777
6 id6 a -0.82046838
7 id7 a 0.48742905
8 id8 a 0.73832471
9 id9 a 0.57578135
10 id10 a -0.30538839
...因为您正在收集除id之外的所有列。尽管如此,如果您只想指定字符向量,那么gather仍然是一个选项(正如@Maurits所指出的,下划线后缀的版本是不推荐的):
> df %>% tidyr::gather(key="name",value="val",-"id")
id name val
1 id1 a -0.62645381
2 id2 a 0.18364332
3 id3 a -0.83562861
4 id4 a 1.59528080
5 id5 a 0.32950777
6 id6 a -0.82046838
7 id7 a 0.48742905
8 id8 a 0.73832471
9 id9 a 0.57578135
10 id10 a -0.30538839
...https://stackoverflow.com/questions/53640769
复制相似问题