这是我的示例数据,这些数据存储在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中做到这一点?我有大量的数据以这种方式进行整理
答案 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在您的示例中表示一个空单元格。这样可以解决您的问题吗?