如何解决添加新列替换字符串作为值 数据
我有一列包含字符串“ acute”和“ convalescent”的列。我想创建一个新列来替换急性= 20和恢复期= 21的数字。
解决方法
我们只可以在base R
df1$newcol <- df1$col1
df1$newcol[df1$col1 == 'acute'] <- 20
df1$newcol[df1$col1 == 'convalescent'] <- 21
或在base R
df1$newcol <- with(df1,c(20,21)[as.integer(factor(col1,levels = c('acute','convalescent')))])
数据
set.seed(24)
df1 <- data.frame(col1=sample(c('acute','convalescent'),20,replace = T),stringsAsFactors = FALSE)
,
您还可以使用ifelse()
,它是矢量化函数:
#Data
df <- data.frame(Var=sample(c('acute',stringsAsFactors = F)
#Condition
df$Value <- ifelse(df$Var=='acute',ifelse(df$Var=='convalescent',21,NA))
输出:
df
Var Value
1 acute 20
2 acute 20
3 acute 20
4 convalescent 21
5 convalescent 21
6 convalescent 21
7 acute 20
8 acute 20
9 acute 20
10 acute 20
11 acute 20
12 acute 20
13 acute 20
14 convalescent 21
15 acute 20
16 acute 20
17 acute 20
18 convalescent 21
19 acute 20
20 acute 20
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。