r - 如何在 R 中使用相同的条件更改多个列?
问题描述
我需要重新编码数据中的一些列,有 29 列具有相同的编码表达式
单元格用数字编码,如下所示:
1 - 正常 2 - 改变 3 - 不适用
我想创建一个 for 循环来同时更改所有列。我需要将数字代码 (1;2;3) 转换为名称(Normal;Alteres;NA)
这就是我想要做的......我没有收到任何错误消息,但这不起作用......
for (i in names(df[,123:151])){
mutate(i = case_when(
i == 1 ~ 'Normal',
i == 2 ~ 'Altered',
i == 3 ~ 'NA'))
}
解决方案
一个简单的方法是使用 tidyverse 中的 dplyr。
library(tidyverse)
#make test dataframe
col1 <- c("1", "2", "3")
col2 <- c(3, 2, 2)
df <- data.frame(col1, col2)
df_recoded<-df %>%
mutate(across(.cols = everything(), ~case_when(
. == 1 ~ 'Normal',
. == 2 ~ 'Altered',
. == 3 ~ NA_character_)))
推荐阅读
- javascript - Ramda:记住并使用价值
- css - 响应式谷歌图表如何来自 iframe 标签?
- sql - 使用数据透视表将 SQL 查询转换为表
- c++ - 打印字符数组地址的正确方法
- azure-resource-manager - 一次使用 ARM 部署多个 Azure 虚拟网络和子网时的 AnotherOperationInProgress
- sql - Postgres NOW():可以是过去吗?
- python - 如何使用条件按列设置我的数据框的样式?
- python - 在 matplotlib 日期中的特定日期插入垂直线的问题
- typo3 - TYPO3 (10.4) Felogin:不能更改模板
- python - python中如何加快读写二进制文件操作?