R语言如何提取字符串字符拆分填充为数据框对应位置列
R实现单词按字符位置拆分到对应列的方法
你已经完成了位置列初始化、单词按字符拆分的步骤,只需要将拆分得到的字符列表按行合并为矩阵,直接赋值给对应位置列即可完成填充,不需要逐行遍历操作。
基于你现有代码的补全方案
直接在你已写的代码后追加1行赋值语句即可得到预期结果:
# 加载stringr包,使用str_split函数需提前加载 library(stringr) # 你已编写的初始化代码 words <- c('which', 'there', 'their', 'would') words <- as.data.frame(words) position <- c("first_pos", "second_pos", "third_pos", "fourth_pos", "fifth_pos") words[position] <- NA dismantled <- str_split(words$words,"") # 追加这1行即可完成所有列的填充 words[position] <- do.call(rbind, dismantled)
运行后直接查看words数据框,就能得到你预期的结构:
| words | first_pos | second_pos | third_pos | fourth_pos | fifth_pos |
|---|---|---|---|---|---|
| which | w | h | i | c | h |
| there | t | h | e | r | e |
| their | t | h | e | i | r |
| would | w | o | u | l | d |
可选优化说明
- 如果你不想依赖stringr包,可以把拆分语句替换成R原生函数,效果完全一致:
dismantled <- strsplit(words$words, "") - 该方案默认所有输入单词长度相同,和你当前的5位单词场景匹配;如果后续需要处理长度不一致的单词,需要先对短单词拆分结果补占位空值,再做行绑定,避免出现长度不匹配的赋值报错。
内容的提问来源于stack exchange,提问作者TheArtilleryGuy1
相关产品推荐
相关产品推荐

