使用重复的列值排列值

时间:2019-02-28 16:48:09

标签: r dataframe matrix

这是我的示例数据,这些数据存储在csv中并导入到R中。

Rowid   parcel no           crop    area    Area insured
1             122         cotton     0.9            1.2
2             111           soya     0.8            1.1
3             111         cotton     1.2            1.6
4              23           soya     0.7            1.5
5              45         cotton    0.23            1.3
6              45           soya     1.6            1.0

我想将其安排为

parcel no       crop    area    Area insured     crop   area.   Area insured
122           cotton     0.9            1.2         
111             soya     0.8            1.1      cotton 1.2      1.6
23              soya     0.7            1.5         
45            cotton    0.23            1.3      soya   1.6      .01

我在徘徊如何获得上述结果。有没有可能在R中做到这一点?我有大量的数据以这种方式进行整理enter image description here

1 个答案:

答案 0 :(得分:1)

解决此问题的一种方法是提取具有重复宗地的行,然后合并。我这样做只是一个最小的示例:

df<-data.frame(c(11,11,12,13,13),c("a","b","c","d","a"))
names(df)<-c("parcel","crop")
df1<-df[duplicated(df$parcel),]
df2<-df[!duplicated(df$parcel),]
merge(df2,df1,by="parcel",all.x=T,all.y=T)

您得到了输出

  parcel crop.x crop.y
1     11      a      b
2     12      c   <NA>
3     13      d      a

其中,NA在您的示例中表示一个空单元格。这样可以解决您的问题吗?