我有两个csv文件:
csv1 <- data.frame(y=c("classA", "classB", "classA", "classB", "classA", "classC"),
DBID=c("d1", "d1", "d2", "d3", "d3", "d3"))
y DBID
1 classA d1
2 classB d1
3 classA d2
4 classB d3
5 classA d3
6 classC d3
csv2 <- data.frame(tm=c("t1","t1","t2"),
y=c("classA","classC","classB"))
tm y
1 t1 classA
2 t1 classC
3 t2 classB
我想通过匹配两个csv文件中的列y来提取信息以获取表格,即
t1在csv2文件中有classA和classC,因此,在csv1(d1,d2和d3)中分类为classA的所有DBID都列在结果数据帧中,第一列中为t1,d1,d2和d3为第二列柱
t2在csv2文件中有B类,因此,在csv1(d1和d3)中归类为classB的所有DBID都列在结果数据框中,其中t2列在第一列中,d1和d3列为第二列。
并获取如下数据框:
tm DBID endcol
t1 d1 1
t1 d2 1
t1 d3 1
t1 d3 1
t2 d1 1
t2 d3 1
请使用R。
指示如何操作答案 0 :(得分:3)
也许merge
?
> merge(csv1,csv2)
y DBID tm
1 classA d1 t1
2 classA d2 t1
3 classA d3 t1
4 classB d1 t2
5 classB d3 t2
6 classC d3 t1
您可以自己添加所有列的列。 merge
(默认情况下)基于具有相同名称的列合并两者,这就是为什么我不必传递任何其他参数。如果您有其他匹配的列名,则需要明确指定by
参数以获得所需的行为。