如何在R语言中根据条件将数据集全部替换为指定值
解决方案
你可以通过判断name列的取值,直接生成全为1或0的数据集,以下是几种简洁的实现方式:
基础R方法
直接利用逻辑向量的特性(TRUE对应1,FALSE对应0),扩展到整个数据集的维度:
# 生成与原数据集维度匹配的结果,保留原列名 result <- data.frame(matrix(ifelse(data$name == "A", 1, 0), nrow = nrow(data), ncol = ncol(data))) colnames(result) <- colnames(data)
或者用更简洁的广播写法:
result <- data.frame(lapply(data, function(x) ifelse(data$name == "A", 1, 0)))
dplyr 方法(适用于tidyverse用户)
如果你习惯使用tidyverse工具链,可以这样实现:
library(dplyr) result <- data %>% mutate(across(everything(), ~ifelse(name == "A", 1, 0)))
示例验证
用你提供的测试数据运行后,result的输出如下:
name place 1 1 1 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 1 1 8 0 0
内容的提问来源于stack exchange,提问作者user142632
相关产品推荐
相关产品推荐

