Questions tagged «dplyr»

使用此标记可以解决与dplyr软件包中的功能有关的问题,例如group_by,摘要,过滤和选择。

4
错误:找不到函数“%>%”
我正在R中运行一个示例,逐步执行这些步骤,到目前为止,一切正常,除了此代码会产生错误: words <- dtm %>% as.matrix %>% colnames %>% (function(x) x[nchar(x) < 20]) 错误:找不到函数“%>%” 我不知道使用此特殊运算符的好处是什么 %>%,任何反馈都很好。
79 r  dplyr  magrittr 

7
dplyr过滤器:获取具有最小变量的行,但如果有多个最小值,则仅获取第一个
我想使用进行分组过滤dplyr,以这种方式在每个组中仅返回具有variable最小值的那一行x。 我的问题是:如预期的那样,在多个最小值的情况下,将返回所有具有最小值的行。但就我而言,如果存在多个最小值,我只希望第一行。 这是一个例子: df <- data.frame( A=c("A", "A", "A", "B", "B", "B", "C", "C", "C"), x=c(1, 1, 2, 2, 3, 4, 5, 5, 5), y=rnorm(9) ) library(dplyr) df.g <- group_by(df, A) filter(df.g, x == min(x)) 如预期的那样,将返回所有最小值: Source: local data frame [6 x 3] Groups: A A x y 1 A …
73 r  dplyr 

6
按组提取与变量最小值对应的行
我希望(1)将数据按一个变量()分组State,(2)在每个组中找到另一个变量(Employees)的最小值行,以及(3)提取整行。 (1)和(2)是简单的一线客,我觉得(3)也是,但我无法理解。 这是一个示例数据集: > data State Company Employees 1 AK A 82 2 AK B 104 3 AK C 37 4 AK D 24 5 RI E 19 6 RI F 118 7 RI G 88 8 RI H 42 data <- structure(list(State = structure(c(1L, 1L, 1L, 1L, 2L, 2L, …

3
将%>%与colnames()<-
我如何使用管道运算符将管道替换为类似的函数colnames()&lt;-? 这是我想做的事情: library(dplyr) averages_df &lt;- group_by(mtcars, cyl) %&gt;% summarise(mean(disp), mean(hp)) colnames(averages_df) &lt;- c("cyl", "disp_mean", "hp_mean") averages_df # Source: local data frame [3 x 3] # # cyl disp_mean hp_mean # 1 4 105.1364 82.63636 # 2 6 183.3143 122.28571 # 3 8 353.1000 209.21429 但理想情况下,它将是这样的: averages_df &lt;- group_by(mtcars, cyl) %&gt;% …
73 r  dplyr  magrittr 

4
在dplyr中的字符串列上过滤多个值
我data.frame在其中一列中有一个字符数据。我想data.frame从同一列中过滤多个选项。有没有一种简单的方法可以做到这一点,而我却缺少了? 示例: data.frame名称=dat days name 88 Lynn 11 Tom 2 Chris 5 Lisa 22 Kyla 1 Tom 222 Lynn 2 Lynn 我想筛选出Tom与Lynn例如。 当我做: target &lt;- c("Tom", "Lynn") filt &lt;- filter(dat, name == target) 我收到此错误: longer object length is not a multiple of shorter object length

5
使用dplyr查找重复的元素
我尝试使用此处提供的代码来查找dplyr的所有重复元素,如下所示: library(dplyr) mtcars %&gt;% mutate(cyl.dup = cyl[duplicated(cyl) | duplicated(cyl, from.last = TRUE)]) 如何转换此处显示的代码以使用dplyr查找所有重复的元素?我上面的代码只是抛出错误?甚至更好的是,是否有另一个功能比复杂的x[duplicated(x) | duplicated(x, from.last = TRUE)])方法更简洁地实现此目的?
70 r  dplyr 

5
如何在每个组中创建滞后变量?
我有一个data.table: set.seed(1) data &lt;- data.table(time = c(1:3, 1:4), groups = c(rep(c("b", "a"), c(3, 4))), value = rnorm(7)) data # groups time value # 1: b 1 -0.6264538 # 2: b 2 0.1836433 # 3: b 3 -0.8356286 # 4: a 1 1.5952808 # 5: a 2 0.3295078 # 6: a …
69 r  data.table  plyr  dplyr 

6
用dplyr拟合多个回归模型
我想使用dplyr每小时拟合一个模型(因子变量),但出现错误,而且我不太确定出什么问题了。 df.h &lt;- data.frame( hour = factor(rep(1:24, each = 21)), price = runif(504, min = -10, max = 125), wind = runif(504, min = 0, max = 2500), temp = runif(504, min = - 10, max = 25) ) df.h &lt;- tbl_df(df.h) df.h &lt;- group_by(df.h, hour) group_size(df.h) # checks out, …
68 r  dplyr 

1
以可读的方式获取不重复的dplyr计数
我是使用dplyr的新手,我需要计算一组中的不同值。这是一个表格示例: data=data.frame(aa=c(1,2,3,4,NA), bb=c('a', 'b', 'a', 'c', 'c')) 我知道我可以做类似的事情: by_bb&lt;-group_by(data, bb, add = TRUE) summarise(by_bb, mean(aa, na.rm=TRUE), max(aa), sum(!is.na(aa)), length(aa)) 但是,如果我要计算独特元素的数量? 我可以: &gt; summarise(by_bb,length(unique(unlist(aa)))) bb length(unique(unlist(aa))) 1 a 2 2 b 1 3 c 2 如果我想排除NA,我可以这样做: &gt; summarise(by_bb,length(unique(unlist(aa[!is.na(aa)])))) bb length(unique(unlist(aa[!is.na(aa)]))) 1 a 2 2 b 1 3 c 1 但这对我来说有点难以理解。有没有更好的方法来进行这种总结?

6
dplyr :: select函数与MASS :: select冲突
如果我加载MASS包裹: library(MASS) 然后加载尝试运行dplyr::select,我得到一个错误: library(dplyr) mtcars %.% select(mpg) # Error in select(`__prev`, mpg) : unused argument (mpg) 如何使用dplyr::select已MASS加载的软件包?
67 r  dplyr 

7
如何用一组值替换NA
我有以下数据框: library(dplyr) library(tibble) df &lt;- tibble( source = c("a", "b", "c", "d", "e"), score = c(10, 5, NA, 3, NA ) ) df 看起来像这样: # A tibble: 5 x 2 source score &lt;chr&gt; &lt;dbl&gt; 1 a 10 . # current max value 2 b 5 3 c NA 4 d …
18 r  dplyr  tibble 

3
基于tidyeval的非标准评估在mutate右侧重新编码中的使用
考虑一个小标题,其中每一列都是可以采用许多值的字符向量-假设是“ A”到“ F”。 library(tidyverse) sample_df &lt;- tibble(q1 = c("A", "B", "C"), q2 = c("B", "B", "A")) 我希望创建一个函数,该函数将列名作为参数,并重新编码该列,以使任何答案“ A”都变为NA,否则按原样返回df。以这种方式设计它的原因是适合于使用给定列执行一系列操作的更广泛的管道。 有很多方法可以做到这一点。但是我有兴趣了解最佳的惯用tidy_eval / tidyverse方法是什么。首先,问题名称必须位于变异动词的左侧,因此我们适当地使用!!and :=运算符。但是,那该放在右边呢? fix_question &lt;- function(df, question) { df %&gt;% mutate(!!question := recode(... something goes here...)) } fix_question(sample_df, "q1") # should produce a tibble whose first column is (NA, "B", "C") …
13 r  dplyr  rlang  tidyeval  nse 

1
如何旋转R中带有节和子节的列组成的数据框
我有一个下面提到的数据框: structure( list(ID = c("P-1", " P-1", "P-1", "P-2", "P-3", "P-4", "P-5", "P-6", "P-7", "P-8"), Date = c("2020-03-16 12:11:33", "2020-03-16 13:16:04", "2020-03-16 06:13:55", "2020-03-16 10:03:43", "2020-03-16 12:37:09", "2020-03-16 06:40:24", "2020-03-16 09:46:45", "2020-03-16 12:07:44", "2020-03-16 14:09:51", "2020-03-16 09:19:23"), Status = c("SA", "SA", "SA", "RE", "RE", "RE", "RE", "XA", "XA", "XA"), Flag …

1
在对特定行进行条件调整时动态地对多列进行突变
我知道这里有几个类似的问题,但是似乎没有一个问题可以解决我遇到的确切问题。 set.seed(4) df = data.frame( Key = c("A", "B", "A", "D", "A"), Val1 = rnorm(5), Val2 = runif(5), Val3 = 1:5 ) 我想将其中Key ==“ A”的行的value列的值清零。通过a引用列名grep: cols = grep("Val", names(df), value = TRUE) 通常,在这种情况下,要实现我想要的功能,我将使用data.table以下命令: library(data.table) df = as.data.table(df) df[Key == "A", (cols) := 0] 所需的输出是这样的: Key Val1 Val2 Val3 1 A …
11 r  dplyr  data.table 

2
dplyr过滤条件以区分Unicode符号及其Unicode表示形式
我正在尝试根据其格式来过滤Symbol列 \uxxxx 这是很容易在视觉上,就是有些模样$,¢,£,和其他人一样\u058f,\u060b,\u07fe。 但是我似乎无法使用stringi/ 弄清楚dplyr library(dplyr) library(stringi) df &lt;- structure(list(Character = c("\\u0024", "\\u00A2", "\\u00A3", "\\u00A4", "\\u00A5", "\\u058F", "\\u060B", "\\u07FE", "\\u07FF", "\\u09F2", "\\u09F3", "\\u09FB", "\\u0AF1", "\\u0BF9", "\\u0E3F", "\\u17DB", "\\u20A0", "\\u20A1", "\\u20A2", "\\u20A3"), Symbol = c("$", "¢", "£", "¤", "¥", "\u058f", "\u060b", "\u07fe", "\u07ff", "৲", "৳", "\u09fb", "\u0af1", "\u0bf9", "฿", "៛", "₠", …
10 r  dplyr  stringr  stringi 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.