【问题标题】:How to summarise taking a random value from a categorical column? [duplicate]如何总结从分类列中获取随机值? [复制]
【发布时间】:2019-05-14 17:12:08
【问题描述】:

我有两个物种和它们的一些价值。

values <- c(1,2,3,4,5,6,7,8,9,10)
spp <- c(rep("a",5), rep("b",5))
df <- data.frame(spp, values, stringsAsFactor = FALSE)

我想总结数据框,按这些物种分组。我的想法是总结,按物种获得随机值。使用dplyr 哲学,我想这样做:

n.df <- df %>%
group_by(spp) %>%
summarise(value = sample(value))

但是sample 函数不能用于summarise

有人有解决办法吗?

【问题讨论】:

  • 我不知道“我的想法是总结,按物种获得随机值。”意思是。
  • sample(value) 置换向量而不是返回单个值。也许你想要sample(value,1)?另外,您似乎有一个错字——是values 还是value?如果是前者,你需要sample(values,1)

标签: r dataframe dplyr sample summarize


【解决方案1】:

由于您使用的是dplyr,因此您还可以利用sample_n 功能,即

library(dplyr)

df %>%
   group_by(spp) %>%
   sample_n(1)

给出,

# A tibble: 2 x 2
# Groups:   spp [2]
  spp   values
  <chr>  <dbl>
1 a          2
2 b          9

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-13
  • 2017-01-03
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 2015-10-12
  • 1970-01-01
相关资源
最近更新 更多