假设我有以下形式的数据:
d1 <- c("Name: priya", " Age :47", "Gender : female")
我想转换成这种形式:
d1 <- c("Name", "Priya", "Age", "47", "Gender", "female")
如何使用R做到这一点?
答案 0 :(得分:1)
您想要的东西还不是很清楚,所以我在这里做一些假设。
假设您的数据是这样的:
d1 <- c("Name: Priya", " Age :47"," Gender : female")
,您想要这样的最终结果:
d2 <- c("Name", "Priya", "Age", "47", "Gender", "female")
您可以执行以下操作:
d2 <- gsub("\\s","", unlist(strsplit(d1, ":")))
strsplit(d1, ":")
将d1中每个带引号的元素都用“:”符号分隔,但输出一个列表。取消列表将其转换为字符向量。
gsub
部分会找到所有空格"\\s"
,并将其替换为没有空格""
。
希望这会有所帮助。
答案 1 :(得分:0)
您可以使用trimws
删除前导或尾随空格,然后使用strsplit
分隔:
或。
[: ]+
或@sindri_baldur在评论中建议
unlist(strsplit(trimws(d1), "[: ]+"))
#[1] "Name" "priya" "Age" "47" "Gender" "female"
仅在trimws(unlist(strsplit(d1, ":")))
处进行拆分的最大优势是,如果单词中有空格,它将保留它们并仅删除前导或尾随空格。