小编Enr*_*ico的帖子

计算比其他行“小的”行数,同时避免循环

我需要根据列值计算与特定行不同的行数,同时避免循环解决方案。

示例:取一个有四行的data.table对象,其中每行代表一个人。A每个人都有3个价值观v1, v2, v3。目标是计算对于特定个体(行),有多少其他个体的所有三个变量的值都严格大于(或等于),并计入变量 中count。完成这项工作的循环版本可能是:

A = data.table(matrix(0,  nrow = 4, ncol = 3))

colnames(A) <- c("v1","v2","v3")

# Assign values for variables v1, v2, v3
A[1,1] <- 1; A[1,2] <- 1; A[1,3] <- 1
A[2,1] <- 1; A[2,2] <- 1.5; A[2,3] <- 1
A[3,1] <- 0.9; A[3,2] <- 0.5; A[3,3] <- 0.8
A[4,1] <- 2; A[4,2] <- 1.5; A[4,3] <- 2

# Count variable 
A$count = NA

for(j in 1:nrow(A)){
  A$count[j] = …
Run Code Online (Sandbox Code Playgroud)

r count data.table

2
推荐指数
1
解决办法
144
查看次数

标签 统计

count ×1

data.table ×1

r ×1