Вы можете попробовать:
data.frame(hours = sapply(strsplit(vector, " "), function(x) x[1]),
value = sapply(strsplit(vector, " "), function(x) x[2]))
hours value
1 0:00 0,6
2 5:00 1,2
3 9:30 0,9
4 16:00 1,0
5 21:30 0,9
Он сначала разбивает вектор на strsplit()
, затем объединяет первый и второй элемент в data.frame
.
Если вы также хотите заменить запятую на десятичную:
data.frame(hours = sapply(strsplit(vector, " "), function(x) x[1]),
value = sub(",", ".", sapply(strsplit(vector, " "), function(x) x[2])))
hours value
1 0:00 0.6
2 5:00 1.2
3 9:30 0.9
4 16:00 1.0
5 21:30 0.9
Она делает то же самое, что и код выше, но она также заменяет запятую во втором элементе на десятичную, используя sub()
.
Или:
df <- read.table(text = vector, sep = " ", dec = ",", as.is = TRUE, fill = TRUE)[, 1:2]
colnames(df) <- c("hours", "value")
hours value
1 0:00 0.6
2 5:00 1.2
3 9:30 0.9
4 16:00 1.0
5 21:30 0.9
Преобразует вектор в data.frame
с пробелом, используемым в качестве разделителя, и запятой, используемой в качестве десятичной дроби, а затем выбирает первые два столбца.