全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
852 2
2020-03-05
如何同group_by或者其他方法实现如下功能,其实原始数据还有var3,var4…… 如何实现

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-3-6 12:21:11
library(tidyverse)
df %>%
  group_by(name) %>%
  arrange(desc(var1), .by_group = TRUE) %>%
  fill(var1) %>%
  arrange(desc(var2), .by_group = TRUE) %>%
  fill(var2) %>%
  ungroup() %>%
  distinct()
  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-3-6 15:08:12
library(tidyverse)
df <- data.frame(name = c("a","a","a","b","c","d","d"),
                 var1 = c("","abc","abc","","","x",""),
                 var2 = c("y","","y","","","","z"))
#先建一个表格
df[df == ""] <- NA
#先转为NA比较好做
df2 <- df %>% group_by(name) %>% summarise_all(function(x) x[!is.na(x)][1])
#summarise的自写函数返回结果必须长度是1(也对,毕竟summarise后每个group行数也只有1)
#当然啦只适用于每个group的每个var只有1个值的情况
# summarise_all可以用于你说的var3、var4等无数个var的情况,舒服!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群