小编Dir*_*tke的帖子

如何在R中找到满足多个条件的值的交集?

假设我有以下数据框:

df <- data.frame(year=c(2010,2011,2012,2010,2011,2010,2011,2012), company = c("a","a","a","b","b","c","c","c"))

  year company
1 2010       a
2 2011       a
3 2012       a
4 2010       b
5 2011       b
6 2010       c
7 2011       c
8 2012       c

Run Code Online (Sandbox Code Playgroud)

我想找到这三年中都存在的公司。一种麻烦的方法是:

library(dplyr)

companies_2010 <- df %>% filter(year==2010) %>% select(company)
companies_2011 <- df %>% filter(year==2011) %>% select(company)
companies_2012 <- df %>% filter(year==2012) %>% select(company)

companies <- intersect(companies_2010, companies_2011) %>% intersect(., companies_2012)

  company
1       a
2       c
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方法来做到这一点?

r dataframe

11
推荐指数
4
解决办法
841
查看次数

如何根据列对 R 中所有列的总和的贡献删除数据框中的列

我试图根据它们对所有列的总和的贡献从我的数据框中删除列。

一个 1x5 数据帧的例子如下(我想也可以以类似的方式从 5x1 数据帧中删除行,然后转置它)。假设这些值的总和为 100。

df <- data.frame(V1 = 5, V2 = 10, V3 = 20, V4 = 40, V5 = 25)

V1    V2     V3    V4    V5  

5     10     20    40    25 
Run Code Online (Sandbox Code Playgroud)

我现在想保留对所有列的总和贡献最大的列,例如至少 80%。

所以我想要实现的是:

V3    V4    V5  

20    40    25 
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法来做到这一点?

提前致谢!

r

3
推荐指数
1
解决办法
71
查看次数

标签 统计

r ×2

dataframe ×1