我有以下形式的参数名称 - 值对:
[1] "action=purchase" "itemId=EST-21"
如何使用参数名称作为列名称并将值作为列值来构造输出?例如,我希望将上述值输出为:
[Column names] [1]action itemId
[Column values][2]purchase EST-21
答案 0 :(得分:5)
假设您将参数值对存储为向量中的字符串:
(dat <- c("action=purchase", "itemId=EST-21"))
# [1] "action=purchase" "itemId=EST-21"
然后您可以使用strsplit
分割等号:
(spl <- strsplit(dat, "="))
# [[1]]
# [1] "action" "purchase"
#
# [[2]]
# [1] "itemId" "EST-21"
然后,您可以使用以下内容构造具有适当值和名称的向量:
setNames(sapply(spl, "[", 2), sapply(spl, "[", 1))
# action itemId
# "purchase" "EST-21"
答案 1 :(得分:2)
要转换=
的lhs上的子字符串,我们可以直接使用read.table/read.csv
,将sep
指定为=
和header=TRUE
read.table(text=dat, sep="=", header=TRUE,
stringsAsFactors=FALSE)
# action purchase
#1 itemId EST-21
注意:&#39; dat&#39;取自@ josliber的帖子。