在R中查找普通行

在R中查找普通行

在尝试使我的数据适合分析时,我似乎无法正确执行此操作。假设我有这种形式的数据集:

df1

V1  V2df1
a   H
b   Y
c   Y

df2

V1  V2df2
a   Y
j   H
b   Y

和另外三个(总共5个不同长度的数据集)。我想做的是以下几点。首先,我必须从第一列(V1)中找到所有常见元素-在这种情况下,这些元素是:a,b。然后,根据这些常见元素,我尝试构建一个连接的数据集,其中V1的值将对所有五个数据集都相同,而来自其他列的值将附加在同一行中。因此,以一个例子来解释,
我的结果应该类似于:
V1  V2df1  V2df2
a   H      Y
b   Y      Y

我设法使一些代码正常工作,但是显然结果是不正确的。我做了什么:
将所有文件中的所有行都读取到变量中(例如:a<-df1[,1]等),然后找到常见的行,例如:
red<-Reduce(intersect, list(a,b,c,d,e))

然后我过滤了特定的数据集,例如:
df1 <-  unique(filter(df1, V1 %in% red))

我根据行对每个数据集进行了排序:
df1<-data.frame(df1[with(df1, order(V1)),])

和删除的重复项(第一列中的元素):
df1<- df1[unique(df1$V1),]

然后,我使用以下代码创建了一个新的数据集:
newdata<-data.frame(V1common=df1[,1], V2df1=df1[,2],V2df2=df2[,2]...)

...表示所有五个数据集。我实际上得到了相同数量的行(这是一个好兆头,因为交叉点内有相同数量的行),然后附加了其他已排序的列,但是没有加起来。感谢您的任何建议。 (我省略了对库的使用,此类代码仅用于说明目的)。

最佳答案

您可以使用join_all包中的plyr

require(plyr)
df <- join_all(list(df1,df2,df3,df4, df5), by = 'V1', type = 'inner')

关于r - 在R中查找普通行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30312371/

10-11 20:34