r - 创建列,告诉前两列之间的数字来源
问题描述
我有一个包含三列的数据框:
df <- structure(list(lowage = c(45, 15, 9, 51, 22, 45, 4, 4, 9, 25),
highage = c(50, 21, 14, 60, 24, 50, 8, 8, 14, 30)), .Names = c("lowage",
"highage"), row.names = c(NA, 10L), class = "data.frame")
df$random_number <- apply(df, 1, function(x) sample(seq(x[1], x[2]), 1))
我想创建第四列,告诉我们来源的random_number
来源。因此,例如,在第一行中,列lowage
= 45 和highage
= 46。比如说,生成的随机数是 46(例如)。我想创建第四列,它显示为标签“highage”,因为它来自 highage 列。等等...
如果解决方案可以在dplyr
,那就太好了!
解决方案
这是你想要的吗?
df %>%
mutate(newcol =
case_when(random_number == lowage ~ "lowage",
random_number == highage ~ "highage",
TRUE ~ "between"))
# lowage highage random_number newcol
# 1 45 50 47 between
# 2 15 21 18 between
# 3 9 14 13 between
# 4 51 60 57 between
# 5 22 24 23 between
# 6 45 50 49 between
# 7 4 8 4 lowage
# 8 4 8 6 between
# 9 9 14 9 lowage
# 10 25 30 27 between
推荐阅读
- php - 为什么在没有任何条款的情况下尝试访问 taxonomy.php 页面时出现 404 错误,(Wordpress 看不到分类页面)
- regex - 使用正则表达式匹配子字符串
- youtube-data-api - 超出配额 - 从我的应用上传 YouTube 链接 - 在仪表板上看不到超出配额
- windows - 从长路径启动 win32 应用程序
- javascript - 在 mongoose 文档中检索对象的所有键
- r - 有没有办法根据一组字符串是否显示为较长字符串的一部分来过滤它们?
- reactjs - 如何使用 react-native-testing-library getByRole
- bash - 是否可以使用在循环中更改其名称的变量作为 shell 脚本中函数的输入?
- reactjs - 如何通过反应原生导航传递参数
- jquery - 如何正确地将 JSON 发送到谷歌函数?