基于两列最大值的R条件值分配



我想根据多个条件分配一个值,这些条件包括(I)15000以下的所有值,以及(ii)两列中每行的最高值。到目前为止,我有以下代码,它创建了一个新变量,并将"5000"分配给满足第一个条件的行。

df$new.variable[all.premises < 15000] <- "5000"

如何合并第二个条件,该条件计算出其他两个变量(称为前提<2k&前提>2k)的最高值?数据结构如下:

Postcode    all.premises    premises<2k    premises>2k
AB1 123     24000           18000          6000
AB2 124     30000           22000          8000
AB3 125     12000           4000           8000
AB4 126     24000           18000          6000

我认为which.max在这里可能有用,在这种情况下,它可能是类似于:

df$new.variable[all.premises < 15000 & which.max(premises<2k, premises>2k)] <- "5000"

总结两个条件:

  • 我想将不同的值分配给那些前提位于某个数字之上或之下的行(使用all.properties)(这是直接的)
  • 我还想为那些拥有大多数前提的行分配不同的值,这些前提距离特定位置大于或小于2km(起诉前提<2k和前提>2k)

我不确定为什么或如何根据这些条件创建新变量,但应用以下两个步骤,我们可以替换值,

df$all.premises[df$all.premises < 15000] <- 5000
df[3:4] <- t(apply(df[3:4], 1, function(i) replace(i, which.max(i), 5000)))
df
#    Postcode all.premises premises.2k premises.2k.1
#1  AB1 123        24000        5000          6000
#2  AB2 124        30000        5000          8000
#3  AB3 125         5000        4000          5000
#4  AB4 126        24000        5000          6000

最新更新