从R中的两个类别向量创建数据表[重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

我想使用以下向量创建一个新的数据表。我有两个表,一个包含100个人的列表,以及一个包含5个测试的列表。我想组合表,但是,我想为每个主题的每个测试都有一行,所以在新表中我将有500行。我使用下面的简化示例。这是在R.

person  <- data.frame(c("a", "b", "c", "d"))
test <- data.frame(c("1", "2", "3", "4", "5"))

我想从下面创建一个新表

person   test
 a          1  
 a          2
 a          3
 a          4
 a          5
 b          1
 b          2
 b          3
 b          4
 b          5

...等

我最初尝试加入,但没有变量可以匹配,也尝试粘贴没有运气。我觉得我错过了一些东西,因为这听起来很简单。任何帮助,将不胜感激!

r dataframe merge data.table
2个回答
2
投票

干得好。

expand.grid(person = c("a", "b", "c", "d"), 
                test = c("1", "2", "3", "4", "5"))

使它成为data.table()

expand.grid(person = c("a", "b", "c", "d"), 
            test = c("1", "2", "3", "4", "5"))%>%
data.table()

这给出了人与测试之间所有可能的配对。

这也许是一些帖子的重复。


1
投票

我们也可以使用CJ包中的。输出是data.table

library(data.table)

CJ(person[, 1], test[, 1])
#     V1 V2
#  1:  a  1
#  2:  a  2
#  3:  a  3
#  4:  a  4
#  5:  a  5
#  6:  b  1
#  7:  b  2
#  8:  b  3
#  9:  b  4
# 10:  b  5
# 11:  c  1
# 12:  c  2
# 13:  c  3
# 14:  c  4
# 15:  c  5
# 16:  d  1
# 17:  d  2
# 18:  d  3
# 19:  d  4
# 20:  d  5
© www.soinside.com 2019 - 2024. All rights reserved.