【发布时间】:2020-12-26 07:59:25
【问题描述】:
我是 R 新手,因此非常感谢您帮助了解正在发生的事情! 我有一个非常大的数据框,结构如下:
变量 1 变量 2
(chr) (int)
一、1
一、二
A , 3
B , 4
B , 5
C , 6
C , 7
C , 8
C , 9
...
我想创建一个新的数据框,将 Var 1 分类值组合在一起,并将所有相应的整数 Var2 值组合成数值向量
我希望它看起来像:
Var1 Var2_Combined
(chr) (int)
A , 向量[1, 2, 3]
B , 向量[4, 5]
C , 向量[6, 7, 8, 9]
等
因为数据集很大,我不想手动分配每个向量,我想通过一个函数来完成。我尝试了以下方法,但没有成功。
1.转换为字符串
write.csv(aggregate(df$Var2 ~ df$Var1, FUN = toString), file = "Test_file")
但我无法使用 as.numeric() 或 as.integer() 或任何这些类型的命令将字符串转换回可用的数字。
2。连接
我试图用 c() 来做到这一点
write.csv(aggregate(df$Var2 ~ df$Var1, FUN = c), file = "Test_file")
虽然它将所有 Var2 值与 Var1 中的唯一值相匹配,但它创建了一堆新列,而不是将这些值组合成向量的列:
Var1 Var2 Var3 Var4 Var5 等
(chr) (int) (int) (int) 等
A , 1 , 2 , 3 等
B , 1 , 2 , 3 等
3。一个 for 循环
我尝试使用 unique() 过滤器和一个“for”循环,但它只是返回了不可用的数字
Var1_Unique <- unique(df$Var1)
Var2_Combined <- numeric(length = length(Var1_Unique))
for (i in seq(1, length(Var1_Unique))) {
Var2_Combined[i] <- df %>% filter(Var2 == Var1_Unique[i])
}
我现在只连接了 dplyr。
谢谢
【问题讨论】:
标签: r