0

我有一个带有 2 个向量的文本文件(我将它们作为 data.frame 读取)作为示例。

x =c(1,2,1,7,5,8) ; y = c(1,2,1,8,4,8)

我希望找到 2 个向量之间的所有对。我目前正在写入文件并使用系统调用:

ans11 = system('grep "^1,1" | wc -l ') to get the result.

使用我使用的 grep

'grep "^1,1" | wc -l '  and I get a result of 2
'grep "^2,2" | wc -l '  and I get a result of 1
'grep "^8,8" | wc -l '  and I get a result of 1

我如何用 R 做到这一点?我会使用 grep 和 wc 但在 R 中必须有一种方法可以做到这一点。

4

1 回答 1

3

这就是你所追求的吗?

expand.grid(unique(x),unique(y))

编辑:既然你说计数,我假设你想知道每对出现多少次。你可以这样做:

require(data.table)
dt <- data.table(expand.grid(x,y))
setkey(dt, "Var1", "Var2")
dt[, .N, by="Var1,Var2"]

#     Var1 Var2 N
#  1:    1    1 4
#  2:    1    2 2
#  3:    1    4 2
#  4:    1    8 4
#  5:    2    1 2
#  6:    2    2 1
#  7:    2    4 1
#  8:    2    8 2
#  9:    5    1 2
# 10:    5    2 1
# 11:    5    4 1
# 12:    5    8 2
# 13:    7    1 2
# 14:    7    2 1
# 15:    7    4 1
# 16:    7    8 2
# 17:    8    1 2
# 18:    8    2 1
# 19:    8    4 1
# 20:    8    8 2
于 2013-02-04T14:08:03.900 回答