r - 如何循环 R 中的行以根据相邻列中的相应值拆分列?
问题描述
我有两列作为字符的数据框:
col1 col2
"Chharodi" "Jasmine Green-1, Chharodi,Ravalvas, Chharodi,Thakorvas, Chharodi"
"Lapkaman" "Belavyu Farm, Lapakaman,Ravalvas, Lapakaman,Vankarvas, Lapakaman"
"Ognaj" "Vav Valo Vas, Oganaj,Marutinadan Society, Oganaj,Ravalvas,Ognaj"
我想用这个输出拆分 col2(根据 col1 中的相邻值拆分文本):
col3 col4 col5 col_contd..
Jasmine Green-1 Ravalvas Thakorvas
Belavyu Farm Ravalvas Vankarvas
Vav Valo Vas Marutinadan Society Ravalvas
当我使用这个时得到一个“非字符参数”的错误
for (i in 1:nrow(df)){
df1<-strsplit(df, df$col2[i],split = df$col1[i])
}
另外,如何将行绑定在一起以创建最终的 df?
解决方案
一个基础 R 解决方案,
i1 <- max(lengths(strsplit(as.character(df$col2), df$col1)))
do.call(rbind, lapply(strsplit(as.character(df$col2), df$col1),
function(i){length(i) <- i1; i}))
# [,1] [,2] [,3]
#[1,] "l " " m " " n "
#[2,] "k " " g " " m "
#[3,] "e " " f " NA
推荐阅读
- facebook - 存在一个过期后FB会自动生成新令牌吗?
- python - 删除字符串中第 4 个句点之后的所有内容
- python - 为什么我调用输入时程序意外退出?
- endpoint - 如何清理 azure iothub 内置端点数据?保留时间设置为 1 天,数据保留数月
- ruby - 增加 gem 搜索路径
- sublimetext3 - 如何定义在 Sublime Text 3 中保存项目的快捷键?
- java - 嵌套对象的简单杰克逊反序列化
- java - 使用 Spring 和 AngularJS 发送电子邮件?
- javascript - 正则表达式从字符串中查找和替换特定元素
- vba - 如何在 VBA 中限制函数?