我有一个包含200列的巨大数据框,类似这样
A 1 E 5 I 9 ...
B 2 F 6 J 10 ...
C 3 G 7 K 10 ...
D 4 H 8 L 12 ...
将200列重新分成两列的最佳方法是什么,以便:
A 1
B 2
C 3
D 4
E 5
F 6
G 7
H 8
I 9
我是R的新手。必须有一种非常简单的方法来做到这一点,但我无法真正找到它。 Tidyr似乎没有这方面的功能。
答案 0 :(得分:3)
试试这个:
data.frame(col1 = unlist(df1[, c(TRUE, FALSE)]),
col2 = unlist(df1[, c(FALSE, TRUE)]))
可能这是重复的,找不到目标帖子......
答案 1 :(得分:0)
阅读可重复的示例数据:
df <- read.table(text = "A 1 E 5 I 9 ...
B 2 F 6 J 10 ...
C 3 G 7 K 10 ...
D 4 H 8 L 12 ...")
删除无用的列
df$V7 <- NULL
通过选择列并将它们合并到向量
来创建输出result <- data.frame(V1 = as.vector(unlist(df[ , seq(1, dim(df)[2] -1, 2)])),
V2 = as.vector(unlist(df[ , seq(2, dim(df)[2], 2)])))
打印解决方案:
print(result)
V1 V2
1 A 1
2 B 2
3 C 3
4 D 4
5 E 5
6 F 6
7 G 7
8 H 8
9 I 9
10 J 10
11 K 10
12 L 12