r - 从其他列创建特定值的新列
问题描述
我有县数据,但我想创建仅列出州的列。基本上,我有这个:
County
County 1, NY
County 2, NY
County 3, NY
County 4, TX
County 5, TX
County 6, IL
County 7, IL
但我想要这个:
County State
County 1, NY NY
County 2, NY NY
County 3, NY NY
County 4, TX TX
County 5, TX TX
County 6, IL IL
County 7, IL IL
有没有办法让 R 'find' 并在我的 County 列中选择“NY”、“TX”等并从中创建一个 State 列?谢谢!
解决方案
dat$State <- gsub(".*\\b([^[:space:]]+)[[:space:]]*$", "\\1", dat$County)
dat
# County State
# 1 County 1, NY NY
# 2 County 2, NY NY
# 3 County 3, NY NY
# 4 County 4, TX TX
# 5 County 5, TX TX
# 6 County 6, IL IL
# 7 County 7, IL IL
演练:
.*
是零个或更多的东西,在这里我们可以丢弃它\\b
是一个单词边界,以确保我们得到所有的状态,而不仅仅是它的第二个字母(...)
是我们稍后会回忆的组;第一个字符串中括号中的任何内容都可以通过其位置在第二个字符串中引用,如\\1
[^[:space:]]+
是一个字符类,[:space:]
表示任何类似空格的东西,并[^...]
否定它,所以这意味着任何非空格;尾随+
意味着一个或多个[[:space:]]*
和以前一样是一个非否定的空格字符类,但现在*
意味着零个或多个$
是字符串的结尾
数据
dat <- structure(list(County = c("County 1, NY", "County 2, NY", "County 3, NY", "County 4, TX", "County 5, TX", "County 6, IL", "County 7, IL")), row.names = c(NA, -7L), class = "data.frame")
推荐阅读
- reactjs - 在 Github Pages 上更改为自定义域会导致带有 react-router 的 create-react-app 停止工作
- python - 如何从字符串列表中删除 \n
- javascript - js在循环内设置随机值
- javascript - 在购物车应用程序中选择项目后反应动态搜索栏不更新列表
- python - 我怎样才能找到有多少硬盘或固态硬盘有一台电脑
- label - 移除掩码中的小对象并在 for 循环外生成新的二进制掩码
- c# - MVC 根据另一个表的 id 创建一个列表视图
- r - 使用自定义评估方案评估 Moodle 中的考试
- ruby-on-rails - left_join 同一张表两次
- python - 如何使用 cqlengine 在 Cassandra 中定义冻结列?