相关疑难解决方法(0)

使用字符串向量输入在dplyr中按多列分组

我试图将我对plyr的理解转移到dplyr,但我无法弄清楚如何按多列分组.

# make data with weird column names that can't be hard coded
data = data.frame(
  asihckhdoydkhxiydfgfTgdsx = sample(LETTERS[1:3], 100, replace=TRUE),
  a30mvxigxkghc5cdsvxvyv0ja = sample(LETTERS[1:3], 100, replace=TRUE),
  value = rnorm(100)
)

# get the columns we want to average within
columns = names(data)[-3]

# plyr - works
ddply(data, columns, summarize, value=mean(value))

# dplyr - raises error
data %.%
  group_by(columns) %.%
  summarise(Value = mean(value))
#> Error in eval(expr, envir, enclos) : index out of bounds
Run Code Online (Sandbox Code Playgroud)

将plyr示例翻译成dplyr-esque语法我错过了什么?

编辑2017:Dplyr已更新,因此可以使用更简单的解决方案.查看当前选择的答案.

r r-faq dplyr

145
推荐指数
7
解决办法
8万
查看次数

仅包含选定列的数据框上的唯一

我有一个大于100列的数据框,我会通过只比较两列来找到唯一的行.我希望这是一个简单的,但我无法与它uniqueduplicated我自己合作.

在下面,我想只使用id和id2唯一:

data.frame(id=c(1,1,3),id2=c(1,1,4),somevalue=c("x","y","z"))

id id2 somevalue
1   1         x
1   1         y
3   4         z
Run Code Online (Sandbox Code Playgroud)

我想获得:

id id2 somevalue
1   1         x
3   4         z
Run Code Online (Sandbox Code Playgroud)

要么:

id id2 somevalue
1   1         y
3   4         z
Run Code Online (Sandbox Code Playgroud)

(我没有偏好保留哪些唯一行)

r unique

65
推荐指数
3
解决办法
9万
查看次数

标签 统计

r ×2

dplyr ×1

r-faq ×1

unique ×1