繁体   English   中英

R 中数据帧中每行满足条件的百分比

[英]Percentage of each row that meet a condition in a data frame in R

我有一个数据框(调用“dat”)和一个包含 6 个元素的向量(调用 v)

我想在数据框中添加6 个新列

第一个新列:每行中大于向量第一个元素的元素数

第二个新列:每行中大于向量第二个元素的元素数

第三个新列:每行中大于向量第三个元素的元素数

等等.....

dat<-data.frame(replicate(10,sample(0:6,50,rep=TRUE)))
v<-c(2,4,1,3,5,6)

谢谢

在基础 R 中,您可以执行以下操作:

dat[paste0('greater_than_', v)] <- lapply(v, function(x) rowSums(dat >= x))

purrr中,您可以执行以下操作:

dat[paste0('greater_than_', v)] <- map(v, ~rowSums(dat >= .x))

我们可以通过这种方式使用tidyverse

library(dplyr)
library(purrr)
library(stringr)
map_dfc(v, ~rowSums(dat >= .x)) %>% 
     rename_all(~str_c('greater_than_', v)) %>% 
     bind_cols(dat, .)

或者在base R中使用for循环

for(i in seq_along(v)) dat[paste0('greater_than_', v[i])] <- rowSums(dat >= v[i])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM