r - Strsplit 在每个字符处拆分字符串
问题描述
我有一个像这样的巨大数据集:
customer_id customer_math
15251 10001010
10101 11111111
84787 10101010
我想在每个字符处拆分 customer_math 以接收这样的 df:
customer_id 2012 2013 2014 2015 2016 2017 2018 2019
15251 1 0 0 0 1 0 1 0
10101 1 1 1 1 1 1 1 1
84787 1 0 1 0 1 0 1 0
我试过但失败了。
你能帮我解决这个问题吗?
非常感谢您的支持!
解决方案
这是一种可能的解决方案,它对正前瞻(?=.)
进行正则表达式拆分,以在每个字符之前生成拆分。
out <- strsplit(as.character(df$customer_math), "(?=.)", perl=TRUE)
data.frame(df, do.call(rbind, out))
customer_id customer_math X1 X2 X3 X4 X5 X6 X7 X8
1 15251 10001010 1 0 0 0 1 0 1 0
2 10101 11111111 1 1 1 1 1 1 1 1
3 84787 10101010 1 0 1 0 1 0 1 0
数据:
df <- data.frame(customer_id=c(15251, 10101, 84787),
customer_math=c(10001010, 11111111, 10101010))
编辑:
正如@Sotos 所指出的,使用strsplit
空""
字符串作为拆分字符也可以。
推荐阅读
- qt - 如何解决 MSVC 编译器问题?
- javascript - 如何在 react-router-dom 中模拟 useNavigate 钩子
- python - 如何处理python中的断管错误?(套接字编程)
- java - 如何在将二维数组写入 CSV 文件并将其显示在表格上时摆脱它的空值/元素?
- c# - 奇怪的行为。oracle db中日期列的参数
- gitlab - K8s executor - 非 k8s 环境的命名空间
- ssl - 如何在一个 TLS 连接中封装 OpenVPN 和 HTTPS 流量?
- react-native - React Navigation 5 身份验证流程不起作用
- sql - 如何将 sql 查询转换为 typeorm 查询?
- three.js - 三个 JS 在 gltf 上投下阴影不起作用