从R中的两个类别向量创建数据表

时间:2017-12-28 03:59:38

标签: r dataframe merge data.table

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

man sed

我想从下面创建一个新表

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

...等

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

2 个答案:

答案 0 :(得分: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 :(得分: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