我想知道是否有像subset
函数,但分配,而不是提取。经常,我需要做的是这样寻找一个子集< - 函数
rows <- # some condition
df$x[rows] <- with(df[rows, ], {
# operation 1...
})
df$y[rows] <- with(df[rows, ], {
# operation 2...
})
它在我看来,这将是很好能够写出
subset(df, rows, c(x, y)) <- (some expression combining operations 1 and 2)
有没有这样的事了吗?
编辑:一些背景。在SAS,一个可以写入数据处理类似的代码
if /* condition */ then do;
x = ...; y = ...; z = ...;
end;
else if /* some other condition */ then do;
x = ...; y = ...; z = ...;
end;
else if /* etcetera */
基本上,我在寻找最简单/最优雅的方式来复制这R.直接翻译会涉及到用于遍历数据帧中的所有行,显然我宁愿不这样做。
如何选择你的行的基础上,一些标准是什么?你总是只有2个操作?如果是这样的话,像在sapply()这样的ifelse()可能会让你在那里 – nzcoops
理想情况下,它将是完全通用的,这样我可以指定一些表达式来对子集进行子集化,我可以允许分配多个列。 –