我有一个带有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中必须有一种方法来实现它。
答案 0 :(得分: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