这是最小的可重复数据,但我的真实的数据非常庞大。
id <- 1:30
height<-rnorm(30,5.5)
lh_ab<-rnorm(30, 10, 10)
lh_cd<-rnorm(30,10,10)
lh_ef<-rnorm(30,10,10)
rh_ab<-rnorm(30, 10, 10)
rh_cd<-rnorm(30, 10, 10)
rh_ef<-rnorm(30,10,10)
data<-data.frame(id,height,lh_ab,lh_cd,lh_ef,rh_ab,rh_cd,rh_ef)
我想写一个函数,自动计算左半球和右半球的减法得分。
在示例数据集中,我只有三个区域(ab,cd,ef),但在我的真实的数据集中,它是巨大的。
try <- function(data,
start){ # in this example, it would be 3 because demographic variable ends in # second column
require(tidyverse)
for{i in start:ncol(data)}
data <- data %>%
mutate( substraction_ab=lh_ab-rh_ab # this is not good approach because my data is huge.
)
return(data)
}
因此,在示例数据集中,我有三个区域(ab,cd,ef),因此该函数应自动生成三个减法分数
(列名应为“substraction_ab”、“substraction_cd”和“substraction_ef”)
然而,我真的不想手动完成,我想自动完成。(同样,我有巨大的数据)
1条答案
按热度按时间bxjv4tth1#
也许像这样?如果你有成千上万的区域,这可能是低效的,但(理论上)用相同的代码容纳任何数量的区域。