【发布时间】:2017-10-21 17:18:12
【问题描述】:
我是 R 初学者,目前面临一个我暂时无法概念化的问题。
我看过几个相关的帖子,但除了那里没有找到具体的答案
:
Aggregating rows with same Ids and retaining only unique entries in R
但我的问题有点不同。
这是我想使用的初始 df 的结构:
sta_RHP_metho (3528,4) 变量是:
- “code.sandre”女巫是我将使用的 ID
- "CodeOpera" 一个独特的 id 女巫与 "code.sandre" 相关
- “Methode.de.peche”一个字符向量
- “年”
在该 df 中,行数与唯一的 "CodeOpera" (3528) 一样多。 id/“code.sandre”有几个“CodeOpera”,code.sandre有180个
我想要得到的是一个具有唯一行的 df,由“code.sandre”和每年的“Methode.de.peche”字符值组成。
我几乎通过处理以下代码得到了这一点:
x2<-melt(sta_RHP_metho,c("code.sandre","CodeOpera","year"),"Methode.de.peche")
x3<-as.data.frame(dcast(x2,code.sandre + CodeOpera ~ year))
但我的行数仍然与唯一的“CodeOpera”(3528) 一样多,而且正如我所说,我不知道如何通过 ID 获取唯一的 rox。
需要注意的是,每年可能有多个“Methode.de.peche”,所以在某些情况下我可能需要连接返回值。
希望我的解释清楚。
评论将不胜感激;)
干杯。
特里斯坦
谢谢@ANG。这是最小的可重现示例:
1/melt/dcast 操作后得到的数据帧:
code_sandre<-c("A","A","A","B","B","C","D")
year1<-c("a",NA,"a","b",NA,"c","b")
year2<-c("a","b",NA,"b","b","c","b")
year3<-c("a","b",NA,NA,NA,"c","b")
x<-data.frame(v1 =code.sandre,v2 =year1,v3 =year2, v4 =year3))
2/我想得到的数据框:
code_sandre<-c("A","B","C","D")
year1<-c("a","b",NA,"b")
year2<-c("a,b","b","c","b")
year3<-c("a,b",NA,"c","b")
result<-data.frame(code_sandre,year1,year2,year3)
【问题讨论】:
-
您好 Tristan,欢迎来到 StackOverflow (SO)。你能提供一个minimal reproducible example吗?
标签: r dataframe data-manipulation