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 に答える