R函数,用于通过使用其他三列在数据帧中添加一列



我有一个包含许多列的数据帧,其中三列(northcen、south、west(将合并到一个新的变量(location(中。对于每个变量,如果观测值在该区域,则它们的值为1,如果不在该区域则为0(即,如果一个变量的值为0,则其他两个变量的数值为0(。在新变量"0"中;位置";我将通过在每行中放置标签"0"来合并这三个变量;NC"S"W";当它们的值为1或"0"时;E〃;如果同一行中的所有变量的值都为0。变量";位置";应该是初始数据参数的一个新变量(因子(。

我怎么能这么做?

您可以使用dpylr根据条件添加新列。

# create data
dat <- data.frame("northcen" = c(0, 0, 0, 1, 0, 0), "south" = c(1, 0, 0, 0, 1, 0), "west" = c(0, 1, 1, 0, 0, 0))
# add the new column
dat_new <- dat %>%
mutate(location = case_when(northcen == 1 ~ "NC",
south == 1 ~ "S",
west == 1 ~ "W",
TRUE ~ "E"))

这能回答你的问题吗?

最新更新