sdg*_*wer 5 r unique dataframe
在尝试使我的数据适合分析时,我似乎无法正确地做到这一点.假设我有这种形式的数据集:
df1
V1 V2df1
a H
b Y
c Y
df2
V1 V2df2
a Y
j H
b Y
Run Code Online (Sandbox Code Playgroud)
还有三个(共5个不同长度的数据集).我想要做的是以下内容.首先,我必须找到第一列(V1)中的所有常见元素 - 在这种情况下,它们是:a,b.然后根据这些常见元素,我正在尝试构建一个连接数据集,其中V1的值对于所有五个数据集是通用的,而来自其他列的值将附加在同一行中.所以用一个例子来解释一下,我的结果应该是这样的:
V1 V2df1 V2df2
a H Y
b Y Y
Run Code Online (Sandbox Code Playgroud)
我设法让一些代码工作,但显然结果不正确.我做了什么:从所有文件中读取所有行到变量(例如: a<-df1[,1]依此类推),找到常见的行,如:
red<-Reduce(intersect, list(a,b,c,d,e))
Run Code Online (Sandbox Code Playgroud)
然后我过滤了特定的数据集,如:
df1 <- unique(filter(df1, V1 %in% red))
Run Code Online (Sandbox Code Playgroud)
我根据行排序了每个数据集:
df1<-data.frame(df1[with(df1, order(V1)),])
Run Code Online (Sandbox Code Playgroud)
和删除的重复项(第一列中的元素):
df1<- df1[unique(df1$V1),]
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个新的数据集:
newdata<-data.frame(V1common=df1[,1], V2df1=df1[,2],V2df2=df2[,2]...)
Run Code Online (Sandbox Code Playgroud)
...表示所有五个数据集.我实际上有相同的行数(一个好的符号,因为在交集中有相同的行数),然后附加其他排序的列,但有些东西没有加起来.谢谢你的建议.(我省略了使用库等,代码用于说明目的).
你可以join_all从plyr包中使用
require(plyr)
df <- join_all(list(df1,df2,df3,df4, df5), by = 'V1', type = 'inner')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3045 次 |
| 最近记录: |