2016-03-15 3 views
1

У меня есть параметр пары имя-значение следующего вида:Сплит имя столбца и значения

[1] "action=purchase"    "itemId=EST-21" 

Как можно построить выход с именем параметра в качестве имени столбца и значения, как значения столбцов? Например, я хочу, вышеуказанные значения будут выводиться как:

[Column names] [1]action itemId 
[Column values][2]purchase EST-21 
+2

Воспроизводимый пример требуется [поскольку решение будет зависеть от формы ввода] – mnel

ответ

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" 
+0

Спасибо, господин, это сработало .... –

2

Для преобразования подстроки на LHS в =, мы можем непосредственно использовать read.table/read.csv, указав sep как = и header=TRUE

read.table(text=dat, sep="=", header=TRUE, 
      stringsAsFactors=FALSE) 
# action purchase 
#1 itemId EST-21 

ПРИМЕЧАНИЕ: «Даты» взяты из @ josliber переживайте.

+1

Очень круто! Мне потребовалось некоторое время, но я думаю, что я обернулся вокруг, почему это работает :) – josliber

Смежные вопросы