小编nog*_*bad的帖子

如何对数据框列表中的每个数据框进行分组和汇总

我有一个数据框列表:

df1 <- data.frame(one = c('red','blue','green','red','red','blue','green','green'),
                  one.1 = as.numeric(c('1','1','0','1','1','0','0','0')))

df2 <- data.frame(two = c('red','yellow','green','yellow','green','blue','blue','red'),
                  two.2 = as.numeric(c('0','1','1','0','0','0','1','1')))

df3 <- data.frame(three = c('yellow','yellow','green','green','green','white','blue','white'),
                  three.3 = as.numeric(c('1','0','0','1','1','0','0','1')))

all <- list(df1,df2,df3)
Run Code Online (Sandbox Code Playgroud)

我需要按第一列对每个数据框进行分组并总结第二列。就我个人而言,我会做这样的事情:

library(dplyr)

df1 <- df1 %>%
  group_by(one) %>%
  summarise(sum = sum(one.1))
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何迭代列表中的每个项目。

我想过使用循环:

for(i in 1:3){
      all[i] <- all[i] %>%
      group_by_at(1) %>%
      summarise()
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在 summarise() 函数中指定要求和的列(无论如何,这个循环在其他方面可能是错误的)。

理想情况下,我需要输出是另一个列表,其中每个项目都是汇总数据,如下所示:

[[1]]
# A tibble: 3 x 2
  one     sum
  <fct> <dbl>
1 blue      1
2 green     0
3 red       3

[[2]]
# A tibble: …
Run Code Online (Sandbox Code Playgroud)

r dplyr

5
推荐指数
1
解决办法
2075
查看次数

如果字符串包含任何单词列表,则R每行返回true或false

我有一个包含一列字符串的数据集:

text <- c('flight cancelled','dog cat','coach travel','car bus','cow sheep',' high bar')
transport <- 0

 df <- data.frame(text,transport)
Run Code Online (Sandbox Code Playgroud)

如果字符串'text'包含多个单词中的任何一个,我想为每一行返回1,否则返回0。我的问题是我能想到的唯一方法是使用for循环。有更有效的方法吗?我的数据集非常大,因此for循环永远需要运行

words<- 'flight|flights|plane|seats|seat|travel|time|coach'

for (i in 1:6){
   df$transport[i] <- ifelse(any(grepl(words,(str_split(as.character(df$text[i]), " ")))) == TRUE,1,0)
 }
Run Code Online (Sandbox Code Playgroud)

返回:

              text transport
1 flight cancelled         1
2          dog cat         0
3     coach travel         1
4          car bus         0
5        cow sheep         0
6         high bar         0
Run Code Online (Sandbox Code Playgroud)

string r dataframe

4
推荐指数
3
解决办法
154
查看次数

标签 统计

r ×2

dataframe ×1

dplyr ×1

string ×1