r - 在数据框中创建类型列
问题描述
我有一个数据框:
x y
A1 ''
A2 '123,0'
A3 '4557777'
A4 '8756784321675'
A5 ''
A6 ''
A7
A8
A9 '1533,10'
A10
A11 '51'
我想向它添加列“类型”,它有三种类型:1、2、3。1 表示 y 中的值是不带逗号的数字,2 表示带逗号的数字,3 表示空值 ''(两个撇号)。所以想要的输出是:
x y type
A1 '' 3
A2 '123,0' 2
A3 '4557777' 1
A4 '8756784321675' 1
A5 '' 3
A6 '' 3
A7
A8
A9 '1533,10' 2
A10
A11 '51' 1
我该怎么做?对我来说最不清楚的部分是在 y 列中为每种类型添加标题
解决方案
这是通过ifelse
和正则表达式的解决方案:
数据:
df <- data.frame(
y = c("", "", "1,234", "5678", "001,2", "", "455"), stringsAsFactors = F)
解决方案:
df$type <- ifelse(grepl(",", df$y), 2,
ifelse(grepl("[^,]", df$y), 1, 3))
结果:
df
y type
1 3
2 3
3 1,234 2
4 5678 1
5 001,2 2
6 3
7 455 1
更新:
df <- data.frame(
y = c("''", "", "1,234", "5678", "001,2", "", "''", 455), stringsAsFactors = F)
df$type <- ifelse(grepl(",", df$y), 2,
ifelse(grepl("[^,']", df$y), 1,
ifelse(df$y=="", "", 3)))
df
y type
1 '' 3
2
3 1,234 2
4 5678 1
5 001,2 2
6
7 '' 3
8 455 1
这是你的想法吗?
推荐阅读
- php - 当网格的一侧开始比另一侧增加更多时,如何修复自动添加到css网格元素的填充
- python - 207 类(许多与一个对象),电影
- swift - 将主题/发布者转换为另一个发布者
- python - Ping 命令在 Discord.py 机器人中不起作用
- laravel - 无法登录到 laravel 项目
- amazon-web-services - 如何使用域加入和预安装的应用程序创建 Windows ec2 实例
- javascript - 如何访问“msg.guild.members.fetch()”中的值
- html - 在 div 标签中居中图像
- javascript - 如何使用'=>'将日期字符串连接到另一个字符串
- android-studio - 设备选择在 Android Studio 4.0.1 中显示 Loading...