在冗长的文本处理过程结束时,我以所需的数据帧结束。 这是一个伪造的可复制样本:
df <- data.frame("kind" = c("animal", "person", "machine", "plant),
"action" = c("breath", "breath", "4.02.2008", "grow"),
"date" = c("14.02.2008", "3.01.2008", "factory", ""),
"location" = c("stable", "house", "", "greenhouse"))
kind action date location
1 animal breath 4.02.2008 stable
2 person breath 3.01.2008 house
3 machine 14.07.2008 factory
4 plant grow greenhouse
如您所见,有时无法检测到所有文本,所以我以空字段结尾,使一些行将内容(或多个)单元“移动”到左侧。但是,更糟糕的是,有时空单元格还可以(第四行)
如何以酷炫的dplyr方式将此类行中的单元格内容右移?
我认为为此必须有一个特定的命令(shift,move,next,prev .. ??)
到目前为止已经尝试过,但是没有真正起作用(警告仅使用第一个元素),而不是简洁的代码:
df %>%
mutate(location= ifelse(grepl(action, pattern = "[0-9]\\."), date, location)) %>%
mutate(date = ifelse(grepl(action, pattern = "[0-9]\\."), action, date))
请考虑到有十列以上,并且空单元格不是从同一位置开始,有时空单元格必须保持为空。