[英]Sum row values of a data frame using R - where each value in the row is evaluated against a condition
[英]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.