【发布时间】:2017-06-12 02:37:07
【问题描述】:
在r 中有data frame (df) 如下,它有ID 10 个字符的字符串。
df:
ID Var1 Var2
1 0334KLM001 aa xx
2 1334HDM002 zvv rr
3 2334WEM003 qetr qwe
4 3334OKT004 ff sdf
5 4334WER005 ee sdf
6 5334BBC006 qly ssg
7 6334QQQ007 kk htj
8 7334AAA008 uu yjy
9 8334CBU009 ww wttt
10 9334MLO010 aa dg
意图:
使用r 命令,我想仅按字符数 将ID 分成两列。例如,我想在df 中添加两列(Spl_1 和Spl_2),其中Spl_1 具有ID 列的前四个字符 和@ 987654336@ 具有ID 字符的其余部分(ie 5:10)。
预期的output 会是这样的:
output:
ID Var1 Var2 Spl_1 Spl_2
1 0334KLM001 aa xx 0334 KLM001
2 1334HDM002 zvv rr 1334 HDM002
3 2334WEM003 qetr qwe 2334 WEM003
4 3334OKT004 ff sdf 3334 OKT004
5 4334WER005 ee sdf 4334 WER005
6 5334BBC006 qly ssg 5334 BBC006
7 6334QQQ007 kk htj 6334 QQQ007
8 7334AAA008 uu yjy 7334 AAA008
9 8334CBU009 ww wttt 8334 CBU009
10 9334MLO010 aa dg 9334 MLO010
我阅读了以下问题:Q1 & Q2。虽然信息量很大,但我仍然不知道如何按字符数分割刺痛。我找到了'stringr'包,我使用str_sub命令学习,我可以按数字拆分。见下文:
library(stringr)
ID <- "0334KLM001"
str_sub(ID, c(1,5), c(4,10))
[1] "0334" "KLM001"
但我不知道如何与其他r 命令组合以获取上面提供的output?
【问题讨论】:
-
df$spl_1 <- substr(df$ID, 1, 4); df$spl_2 <- substr(df$ID, 5, 10)应该这样做。
标签: r string dataframe split text-processing