基于R中另一列的值乘以数据帧列值

基于R中另一列的值乘以数据帧列值,r,dataframe,R,Dataframe,我在R中有一个数据帧(150000 OB,15个变量),需要根据另一个变量的值修正一个变量值的子集(简单地乘以一个常数)。做这件事的简单方法是什么 我认为apply可以工作,但我不确定如何编写函数(显然不能在函数中乘法)和限定符: df$RESULT <- df[apply(df$RESULT, 1, function(x * 18.01420678) where(SITE==1)), ] df$RESULT你是说这个 dat <- data.frame(x=1:10,y

我在R中有一个数据帧(150000 OB,15个变量),需要根据另一个变量的值修正一个变量值的子集(简单地乘以一个常数)。做这件事的简单方法是什么

我认为apply可以工作,但我不确定如何编写函数(显然不能在函数中乘法)和限定符:

df$RESULT <- df[apply(df$RESULT, 1, function(x * 18.01420678) where(SITE==1)), ]
df$RESULT你是说这个

dat      <- data.frame(x=1:10,y=sample(20,10))
constant <- 100
dat$y    <- ifelse(dat$x > dat$y, dat$y*constant, dat$y)

dat您可以使用“[”的容量进行子集设置,但对于子集的“更正”,您需要使用定义赋值两边的子集的逻辑表达式。由于您将只处理需要更正的值,因此不使用任何进一步的条件函数

df[ df$SITE==1, "RESULT" ] <- df[ df$SITE==1, "RESULT"] * 18.01420678

df[df$SITE==1,“RESULT”]您好!请通过查看我们来帮助您,使您的帖子具有可复制性。谢谢。拿出一个玩具示例,4-5行,2-3列作为输入。同时提及预期的输出。太好了。我正在仔细考虑解决方案。谢谢。