Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新组织R中的许多列_R_Dataframe_Tidyr - Fatal编程技术网

重新组织R中的许多列

重新组织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

我有一个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.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)]))