全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5379 7
2018-11-23
悬赏 5 个论坛币 已解决
按“ID”列,若某一值出现次数小于3,则该值对应的行全部删除
(如ID=2,出现1次,不满足条件,该行删除;ID=1出现3次,满足条件,所有行保留)

应该用什么函数?怎么编呢?

数据如下:
F1        Poi        X1        X30        ID
S2        1        35        190        1
S5        4        35        190        1
S2        1        35        190        1
S5        4        35        190        2
S2        1        35        190        3
S5        4        35        190        3
S2        1        35        190        3
S5        4        35        190        4
S2        1        35        190        5
S5        4        35        190        5
S2        1        35        190        5
S5        4        35        190        7
S2        1        35        190        7
S5        4        35        190        7

最佳答案

Kun806 查看完整内容

import tidyverse analydb % left_join(analydb,by=c("ID")) %>% filter(countn >3)
二维码

扫码加我 拉你入群

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

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

全部回复
2018-11-23 10:18:07
import tidyverse

analydb <- # import data

analydb_obey <- analydb %>% group_by(ID) %summarise(countn = n()) %>% left_join(analydb,by=c("ID")) %>% filter(countn >3)
二维码

扫码加我 拉你入群

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

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

2018-11-23 10:23:45
对ID书据用table,拿到统计数据后,把次数少于3的ID拿出来(用which),然后去掉
二维码

扫码加我 拉你入群

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

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

2018-11-23 11:11:06
Kun806 发表于 2018-11-23 10:36
import tidyverse

analydb % left_join(analydb,by=c("ID")) %>% filter(countn >3)
##  有一点不对,改如下:
library(tidyverse)
library(magrittr)
###
analydb_obey <- analydb %>% group_by(ID) %summarise(countn = n()) %>%
                          right_join(analydb,by="ID") %>% filter(countn >=3)
二维码

扫码加我 拉你入群

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

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

2018-11-24 10:35:28
jgchen1966 发表于 2018-11-23 11:11
##  有一点不对,改如下:
library(tidyverse)
library(magrittr)
谢谢!
二维码

扫码加我 拉你入群

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

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

2019-9-11 15:24:39
Kun806 发表于 2018-11-23 10:18
import tidyverse

analydb % left_join(analydb,by=c("ID")) %>% filter(countn >3)
Error: n() should only be called in a data context
Call `rlang::last_error()` to see a backtrace

> rlang::last_error()
<error>
message: n() should only be called in a data context
class:   `rlang_error`
backtrace:
  1. dplyr::group_by(., ID)
  8. plyr::summarise(., countn = n())
  9. [ base::eval(...) ] with 1 more call
11. dplyr::n()
12. dplyr:::from_context("..group_size")
13. `%||%`(...)
Call `rlang::last_trace()` to see the full backtrace

求问,代码输入后,显示这些是什么原因呢?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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