【发布时间】:2014-08-24 12:15:45
【问题描述】:
我有 2 个文件,比如 3 列和几行。
1 2 10
2 3 20
3 4 30
4 5 40
5 1 50
6 1 60
和
1 8 10
2 3 100
3 4 45
4 5 78
5 2 99
6 80 60
现在我想创建第三个文件,其中包含前两个文件的所有值,并且如果两个文件的第一列和第二列相同,则在第三个文件中,对应于它们的值应该说,第三列中的值第一个文件必须在新创建文件的第三列中,第二个文件第三列中的值必须在新创建文件的第四列中。 根据上面的示例答案应该是
1 2 10 0
2 3 20 100
3 4 30 45
4 5 40 78
1 8 10 0
5 1 50 0
6 1 60 0
5 2 99 0
6 80 60 0
【问题讨论】:
-
看了你的预期结果后,我认为我给你的代码不正确。关于警告消息,请检查您的列是否为
factorsbystr(dat1) -
为什么预期结果中没有
1 8 10 0行 -
我使用了 str(df1)。输出是'data.frame':7 obs。 3 个变量:$ V1:因子 w/ 7 个级别“1”、“2”、“3”、“4”,..:7 1 2 3 4 5 6 $ V2:因子 w/6 个级别“1”, "2","3","4",..: 6 2 3 4 5 1 1 $ V3: 因子 w/ 7 个级别 "10","20","30",..: 7 1 2 3 4 5 6
-
对不起,忘了说。
-
最好将列改为
numeric类。dat1[] <- lapply(dat1, function(x) as.numeric(as.character(x)))和dat2在合并之前相同
标签: r