I have the following dataframe
test <- data.frame(x = c(6, 9, 3, NA),
y = c(3, NA, 2, 3),
z = c(6, 3, NA, 5),
h = c(NA, 6, 7, 2))
这是我想要迭代的列列表。
mylist <- list(test$y, test$z)
我想根据ifelse条件更改“y”和“z”列。
以下是我的尝试...似乎无法工作。
test <- test %>%
map_df(mylist, if(is.na(mylist), 0, 1))
实际上我有一个更大的数据框,这只是测试数据。
我需要使用mutate吗?
我能在管道中使用select吗?像这样:
test <- test %>%
map_df(select(y, z), if(is.na(.), 0, 1))
以下是预期输出:
这是预期的输出
。test <- data.frame(x = c(6, 9, 3, NA),
y = c(1, 0, 1, 1),
z = c(1, 1, 0, 1),
h = c(NA, 6, 7, 2))
感谢您的帮助。
test[c("y","z")] = +(!is.na(test[c("y","z")]))
。 - Onyambu