修改将colname转换为factor的数据帧
我正在分析示例中一些结构为“df”的数据,我需要将其转换为类似下面的“示例”对象:修改将colname转换为factor的数据帧,r,R,我正在分析示例中一些结构为“df”的数据,我需要将其转换为类似下面的“示例”对象: a<- c(1:3) b<- c(1:3) c<- c(1:3) df<- data.frame(a, b, c) col1<- c("a","a","a", "b", "b", "b", "c", "c", "c") col2<- rep(1:3,3) example<- data.frame(col1, col2) aa快速base R解决方案是stack:
a<- c(1:3)
b<- c(1:3)
c<- c(1:3)
df<- data.frame(a, b, c)
col1<- c("a","a","a", "b", "b", "b", "c", "c", "c")
col2<- rep(1:3,3)
example<- data.frame(col1, col2)
aa快速base R
解决方案是stack
:
stack(df)
values ind
1 1 a
2 2 a
3 3 a
4 1 b
5 2 b
6 3 b
7 1 c
8 2 c
9 3 c
我们可以使用pivot\u更长的时间
library(dplyr)
library(tidyr)
df %>%
pivot_longer(cols = everything())
您还可以从tidyr
包中使用gather()
gather(df, colnames(df), key = "col1", value = "col2")
key
和value
在结果数据框中用作新列名。在tidyverse
语法中使用,如下所示
df %>%
gather(colnames(df), key = "col1", value = "col2")
这太棒了!一些问题:-我有多个列,因此我必须使用参数col=-col to exclude排除其中一些列。-我必须使用最新版本的tidyr@federicofookes是的,请务必提及这些问题。谢谢你,就这样。我必须重新安装tidyr以获得最新版本,在旧版本中,pivot\u longer不可用。谢谢