r - 将 DF 拆分为几列
问题描述
我有一列我希望分成几列。我对正则表达式不太熟悉,所以我不确定解决这个问题的正确方法。
样本数据
df <- tibble::tribble(
~player,
"Eloy Jimenez OF CHW",
"Fernando Tatis Jr SS SD"
)
我正在寻找拆分 Caps 开始的列。例如:
output_df <- tibble::tribble(
~col1, col2, col3,
"Eloy Jimenez", "OF", "CHW",
"Fernando Tatis Jr", "SS", "SD"
)
提前致谢。
解决方案
我们可以使用extract
fromtidyr
从字符串末尾捕获大写字符
library(stringr)
library(tidyr)
df %>%
extract(player, into = str_c('col', 1:3), '^(.*)\\s+([A-Z]+)\\s+([A-Z]+)$')
# A tibble: 2 x 3
# col1 col2 col3
# <chr> <chr> <chr>
#1 Eloy Jimenez OF CHW
#2 Fernando Tatis Jr SS SD
或strcapture
从base R
strcapture('^(.*)\\s+([A-Z]+)\\s+([A-Z]+)$', df$player,
data.frame(col1 = character(), col2 = character(), col3 = character()))
# col1 col2 col3
#1 Eloy Jimenez OF CHW
#2 Fernando Tatis Jr SS SD
推荐阅读
- webpack - 新的“npx create-next-app”应用程序无法编译
- c# - xUnit / Fluent 断言应该().Throw
如果不抛出,则带有消息 - r - 改进 JAGS MCMC 运行时
- c# - 如何在不绑定的情况下按数字分隔文本框的内容?
- python - 如何在某个位置将列从一个数据帧插入/移植到另一个数据帧?
- typescript - 打字稿 - d.ts 文件中的类型未找到
- c# - 对派生类中的重写方法使用基类 Doxygen 注释
- python - Python/ Beautiful Soup 数据显示问题
- node.js - FaunaDB 应用程序返回 401 但凭据很好
- c# - 如何重定向到不同的视图?Asp.net MVC 未加载重新调用的视图