Вы можете сделать это с read.table()
в базе R.
cbind(
read.table(text=names(list_a), col.names=c("Color", "Fruit")),
value=unlist(list_a, use.names=FALSE)
)
# Color Fruit value
# 1 Blue Banana 8.7
# 2 Green Strawberry 2.3
# 3 Blue Squash 3.5
# 4 Orange Cherry 4.5
Или с strcapture()
.
cbind(
strcapture("(.+) (.+)", names(list_a), data.frame(Color="", Fruit="")),
value=unlist(list_a, use.names=FALSE)
)
Или простым вызовом tidyr::separate()
с помощьюstack()
.
tidyr::separate(stack(list_a), ind, c("Color", "Fruit"))
# values Color Fruit
# 1 8.7 Blue Banana
# 2 2.3 Green Strawberry
# 3 3.5 Blue Squash
# 4 4.5 Orange Cherry