重新组织R中的许多列
我有一个200列的巨大数据框,类似这样重新组织R中的许多列,r,dataframe,tidyr,R,Dataframe,Tidyr,我有一个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似乎没有这方面的功能。阅读您的可复制示例数据: df <- read
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似乎没有这方面的功能。阅读您的可复制示例数据:
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 ...")
试试这个:
data.frame(col1 = unlist(df1[, c(TRUE, FALSE)]),
col2 = unlist(df1[, c(FALSE, TRUE)]))
可能这是重复的,找不到目标帖子…将每一个备选栏目合并为一个?相关帖子:15小时前提出的问题非常相似:该死,显然使用回收!!!但是,我也使用了
as.vector
,因为unlist
的输出返回一个类因子。我们如何克服这个细节???@Seymour我的解决方案应该使用/不使用因子列。您可以直接使用data.frame
代替cbind.data.frame
@DJack updated,这是测试的遗留问题,谢谢。
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
data.frame(col1 = unlist(df1[, c(TRUE, FALSE)]),
col2 = unlist(df1[, c(FALSE, TRUE)]))