r - R在数据框中找到值(因子变量的行)
问题描述
我有一个带有这样的字符串(因子)变量的df
id v1 v2 v3 v4
1 1 1 1 0
1 0 0 0 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
我想要的是创建一个等于 1 或 0(数字)的新列,如果列列表中出现或不显示 1 说 (v2, v3, v4)
id v1 v2 v3 v4 lu
1 1 1 1 0 1
2 0 0 0 0 0
3 1 1 1 0 1
4 0 0 1 0 1
5 1 0 1 0 1
我不想转换为数字(因为我需要它们以供将来分析)所以像
df <- df %>% mutate(lu = select(., v2:v4) %>% rowSums(na.rm = TRUE))
df <- df %>% mutate(lu = if_else(lu_1 > 0, 1, lu))
不可能。实际上要考虑的变量列表相当长(大约 150 个)
谢谢!
解决方案
嗨,我不知道你是否想要这样的东西。我不擅长 dplyr 所以这是一个基本的 R 版本
虚拟数据:
a <-as.character(sample(0:1,100,replace = T))
b <-as.character(sample(0:1,100,replace = T))
c <-as.character(sample(0:1,100,replace = T))
d <-as.character(sample(0:1,100,replace = T))
df <- as.data.frame(cbind(a,b,c,d), stringsAsFactors = T)
实际代码:
test <- function(x) {
out <- sum(as.numeric(x))
ifelse(out>0,1,0)
}
df$lu <- as.factor(apply(df,MARGIN = 1, test))
输出:
id a b c d lu
1 0 1 0 0 1
2 0 1 0 0 1
3 0 1 0 0 1
4 0 1 0 1 1
5 0 0 0 0 0
推荐阅读
- python - plt.plot 分类轴过度拥挤
- python - Python - 绘图循环中的图形设置
- flask - 更改 Flask 表单文件上传字段中使用的文本
- git - 缺少拉取请求按钮
- linux - 如何在具有非常大行的文件中查找单词差异
- python - AWS lambda:使用子进程导入外部 python 库使程序太慢
- php - 如何下载 XLXS 或其他可以在最新 MAC 中打开的格式的 HTML 数据
- docker - docker volume over fuse:传输端点未连接
- node.js - 在 api 请求之间保持 mongodb 会话
- vba - 尝试在 Oulook365 中为重复电子邮件运行 VBA 代码时出现运行时错误 438