R 根据列的关联标签更改列中的值
我需要根据第一列中的关联值更改最后一列中数据的值。例如,如果R 根据列的关联标签更改列中的值,r,dplyr,R,Dplyr,我需要根据第一列中的关联值更改最后一列中数据的值。例如,如果状态为“AK”,则通信等级应为“1”;如果状态为“AL”,则通信等级应为“2”;如果状态为“AR”,则通信等级应为“3”,等等 任何人都可以建议我一种有效的方法来循环最后一列,然后相应地更改它们的值吗?我的原始数据帧比这个示例大得多,所以我需要高效地执行此操作 示例数据帧: 自从您用dplyr library(dplyr) mutate(INPUT, comm_rank = case_when(state == "AK" ~ 1,
状态
为“AK”,则通信等级
应为“1”;如果状态
为“AL”,则通信等级
应为“2”;如果状态
为“AR”,则通信等级
应为“3”,等等
任何人都可以建议我一种有效的方法来循环最后一列,然后相应地更改它们的值吗?我的原始数据帧比这个示例大得多,所以我需要高效地执行此操作
示例数据帧:
自从您用
dplyr
library(dplyr)
mutate(INPUT, comm_rank = case_when(state == "AK" ~ 1,
state == "AL" ~ 2,
state == "AR" ~ 3))
使用base R,您可以执行以下操作:
df[ncol(df)] <- as.numeric(as.factor(df[,"state"]))
df[ncol(df)]
set.seed(1)
df <- data.frame(state = sample(c("AK", "AL", "AR"), 10, replace=TRUE),
基本R解决方案
v <- 1:3
names(v) <- c("AK", "AL", "AR")
v
# AK AL AR
# 1 2 3
library(dplyr)
df %>% mutate(comm_rank = v[state])
df$comm_rank <- v[df$state]
df$comm\u秩如果秩是基于state
的字母顺序,那么as.numeric(factor(dat$state))
怎么样?你也可以试试,猜猜看,rank
。