r - 有没有办法更有效地编码这个范围?
问题描述
嗨,我有一个导入到 r 中的文件,我想重新编码其中一个看起来像的列
Number of People
1 to 3
4 to 6
7 to 10
.
.
.
.
我的“人数”列总共有 30 多个级别。我想做的是将它们转换为数值(即“1到3”变成“2”,“4到6”变成“5”)
由于我有大量数据要处理,是否有更有效的方法来重新编码,或者只有使用 recode() 才有可能?
谢谢!
解决方案
这是一个dplyr
与 Chris Ruehlemann 的答案具有相同基本结构的基于解决方案
library(dplyr)
library(stringr)
df <- data.frame(Number_of_People = c("1 to 3",
"4 to 6",
"7 to 10"))
df %>%
mutate(first_numb = as.numeric(str_extract(Number_of_People, "^\\d{1,}")),
second_numb = as.numeric(str_extract(Number_of_People, "\\d{1,}$"))) %>%
rowwise() %>%
mutate(avg = mean(c(first_numb, second_numb)))
# A tibble: 3 x 4
Number_of_People first_numb second_numb avg
<fct> <dbl> <dbl> <dbl>
1 1 to 3 1 3 2
2 4 to 6 4 6 5
3 7 to 10 7 10 8.5
推荐阅读
- javascript - 如何拼接来自数组 Javascript 的特定字母?
- google-cloud-functions - Apple 商店收据验证无法通过谷歌云功能进行
- python - 有没有办法在 C++ 中创建具有不同数据类型值的嵌套映射?
- android - 在BottomSheetBehavior里面的Android NestedScrollView
- ruby-on-rails - 在纸轨中跟踪多个条件
- java - 在 Android 应用的历史记录选项卡中更新和保留历史记录
- mysql - 如何将特定的 CHARSET 和 COLLATION 应用于新数据库的内容?
- php - 您如何确保帐户在 WHMCS 上具有正确的 API 权限?
- python - 身份验证失败 - 缺少“授权”标头 - 对 Azure 的 Python HTTP 请求
- google-data-studio - Google Data Studio 是否有任何 API 可以传递参数?