相关疑难解决方法(0)

data.table row-wise sum,mean,min,max像dplyr?

在datatable上还有其他关于行方式运算符的帖子.它们太简单或者解决了特定的场景

我的问题更通用.有一个使用dplyr的解决方案.我玩过但未能找到使用data.table语法的等效解决方案.您能否建议一个优雅的data.table解决方案,它可以重现与dplyr版本相同的结果?

编辑1:真实数据集上建议的解决方案的基准汇总(10MB,73000行,24个数字列上的统计数据).基准测试结果是主观的.但是,经过的时间始终可以重复.

| Solution By | Speed compared to dplyr     |
|-------------|-----------------------------|
| Metrics v1  |  4.3 times SLOWER (use .SD) |
| Metrics v2  |  5.6 times FASTER           |
| ExperimenteR| 15   times FASTER           |
| Arun v1     |  3   times FASTER (Map func)|
| Arun v2     |  3   times FASTER (foo func)|
| Ista        |  4.5 times FASTER           |
Run Code Online (Sandbox Code Playgroud)

编辑2:我在第二天添加了NACount列.这就是为什么在各个贡献者建议的解决方案中找不到该列的原因.

数据设置

library(data.table)
dt <- data.table(ProductName = c("Lettuce", "Beetroot", "Spinach", "Kale", "Carrot"),
    Country …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

25
推荐指数
3
解决办法
1万
查看次数

R 如何在数据框中获取行的中位数

我想知道是否有任何方法可以计算数据框中行的中位数。我知道函数 rowmeans 存在,但我不相信有行中值函数。我想将结果存储在数据框中的新列中。这是我的例子

我试着在网上看。有一次提到行中位数,但我在 R 中找不到该函数。

 C1<-c(3,2,4,4,5)
   C2<-c(3,7,3,4,5)
   C3<-c(5,4,3,6,3)
   DF <- data.frame(ID=c("A","B","C","D","E"),C1=C1,C2=C2,C3=C3)

   DF 


  # This is as far as I have gotten, but not streamlined

  MA <- median(C(3, 3, 5). na.rm = T)   # A
  MB <- median(C(2, 7, 4). na.rm = T)   # B
  MC <- median(C(4, 3, 3). na.rm = T)   # C
  MD <- median(C(4, 4, 6). na.rm = T)   # 4
  ME <- median(C(5, 5, 3). na.rm = T)   # E

  CM <- c(MA, MB, MC, …
Run Code Online (Sandbox Code Playgroud)

r median

6
推荐指数
3
解决办法
8213
查看次数

标签 统计

r ×2

data.table ×1

dplyr ×1

median ×1