标签: dplyr

dplyr ::选择一列并输出为向量

dplyr::select 导致data.frame,如果结果是一列,有没有办法让它返回一个向量?

目前,我必须执行额外的step(res <- res$y)将其转换为data.frame中的vector,请参阅此示例:

#dummy data
df <- data.frame(x = 1:10, y = LETTERS[1:10], stringsAsFactors = FALSE)

#dplyr filter and select results in data.frame
res <- df %>% filter(x > 5) %>% select(y)
class(res)
#[1] "data.frame"

#desired result is a character vector
res <- res$y
class(res)
#[1] "character"
Run Code Online (Sandbox Code Playgroud)

如下:

res <- df %>% filter(x > 5) %>% select(y) %>% as.character
res
# This gives strange output
[1] "c(\"F\", \"G\", \"H\", \"I\", \"J\")"

# I need:
# [1] …
Run Code Online (Sandbox Code Playgroud)

select r vector dataframe dplyr

61
推荐指数
3
解决办法
2万
查看次数

dplyr :: select函数与MASS :: select冲突

如果我加载MASS包:

library(MASS)
Run Code Online (Sandbox Code Playgroud)

然后加载尝试运行dplyr::select,我收到一个错误:

library(dplyr)
mtcars %.%
select(mpg)

# Error in select(`__prev`, mpg) : unused argument (mpg)
Run Code Online (Sandbox Code Playgroud)

如何使用加载dplyr::selectMASS包?

r dplyr

60
推荐指数
5
解决办法
4万
查看次数

dplyr中的mutate_each/summarise_each:如何选择某些列并为变异列赋予新名称?

我对dplyr动词有点困惑mutate_each.

使用basic mutate将数据列转换为z-scores,并在data.frame中创建一个新列(此处带有名称z_score_data)非常简单:

newDF <- DF %>%
  select(one_column) %>%
  mutate(z_score_data = one_column - (mean(one_column) / sd(one_column))
Run Code Online (Sandbox Code Playgroud)

但是,由于我想要转换许多数据列,看起来我应该使用mutate_each动词.

newDF <- DF %>%
     mutate_each(funs(scale))
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但到目前为止我还没弄清楚:

  1. 我怎样才能为这些新列提供适当的名称,就像我可以使用的那样mutate
  2. 如何选择我希望变异的某些列,就像我select在第一种情况下所做的那样?

谢谢你的帮助.

r dataframe dplyr

59
推荐指数
2
解决办法
5万
查看次数

按组提取对应于变量最小值的行

我希望(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, 2L, 
        2L), .Label = c("AK", "RI"), class = "factor"), Company = structure(1:8, .Label = c("A", 
        "B", "C", "D", "E", "F", "G", "H"), class = "factor"), Employees …
Run Code Online (Sandbox Code Playgroud)

aggregate r dplyr data.table

58
推荐指数
5
解决办法
6万
查看次数

如何在每个组中创建滞后变量?

我有一个data.table:

set.seed(1)
data <- 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    3 -0.8204684
# 7:      a    4  0.4874291
Run Code Online (Sandbox Code Playgroud)

我想每个"组"级别计算"值"列的滞后版本.

结果应该是这样的

#   groups time      value  lag.value
# 1      a    1  1.5952808         NA
# 2      a    2  0.3295078  1.5952808 …
Run Code Online (Sandbox Code Playgroud)

r plyr dplyr data.table

58
推荐指数
4
解决办法
6万
查看次数

使用dplyr将某些值设置为NA

我试图用dplyr(data set = dat,variable = x)找出一种简单的方法来做这样的事情:

day$x[dat$x<0]=NA
Run Code Online (Sandbox Code Playgroud)

应该很简单,但这是我现在能做的最好的事情.有没有更简单的方法?

dat =  dat %>% mutate(x=ifelse(x<0,NA,x))
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

使用dplyr查找重复的元素

我尝试使用这里提供的代码用dplyr找到所有重复的元素,如下所示:

library(dplyr)

mtcars %>%
mutate(cyl.dup = cyl[duplicated(cyl) | duplicated(cyl, from.last = TRUE)])
Run Code Online (Sandbox Code Playgroud)

如何转换此处显示的代码以使用dplyr查找所有重复的元素?我上面的代码只是抛出一个错误?或者甚至更好,是否有另一种功能可以比复杂的x[duplicated(x) | duplicated(x, from.last = TRUE)])方法更简洁地实现这一目标?

r dplyr

55
推荐指数
5
解决办法
4万
查看次数

错误:找不到函数"%>%"

我正在R中运行一个示例,完成这些步骤,到目前为止一切正常,除非此代码产生错误:

 words <- dtm %>%
 as.matrix %>%
 colnames %>%
 (function(x) x[nchar(x) < 20])
Run Code Online (Sandbox Code Playgroud)

错误:找不到函数"%>%"

我不明白使用这个特殊操作符的好处是什么 %>%,任何反馈都会很棒.

r dplyr magrittr

55
推荐指数
3
解决办法
16万
查看次数

dplyr mutate rowSums计算或自定义函数

我试图从行计算中改变一个新变量,rowSums如下所示

iris %>% 
  mutate_(sumVar = 
            iris %>% 
            select(Sepal.Length:Petal.Width) %>%
            rowSums)
Run Code Online (Sandbox Code Playgroud)

结果是"sumVar"被截断为其第一个值(10.2):

Source: local data frame [150 x 6]
Groups: <by row>

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species sumVar
1           5.1         3.5          1.4         0.2  setosa   10.2
2           4.9         3.0          1.4         0.2  setosa   10.2
3           4.7         3.2          1.3         0.2  setosa   10.2
4           4.6         3.1          1.5         0.2  setosa   10.2
5           5.0         3.6          1.4         0.2  setosa   10.2
6           5.4         3.9          1.7         0.4  setosa   10.2
..
Warning message:
Truncating vector to length 1 
Run Code Online (Sandbox Code Playgroud)

它应该 …

r dplyr

54
推荐指数
4
解决办法
4万
查看次数

使用'dplyr'库中的'select'功能选择唯一值

是否可以从库中的使用函数列中选择所有唯一值?用符号表示" " .data.frameselectdplyrSELECT DISTINCT field1 FROM table1SQL

谢谢!

select r unique dplyr

53
推荐指数
3
解决办法
10万
查看次数

标签 统计

dplyr ×10

r ×10

data.table ×2

dataframe ×2

select ×2

aggregate ×1

magrittr ×1

plyr ×1

unique ×1

vector ×1