y <- data.frame(x = c("63,98,131","75,109,145","66,104,139"))
Я хочу сделать три столбца A, B, C из x, разделив запятую
A B C
63 98 131
75 109 145
66 104 139
Я пробовал использовать str_split
str_split(y$x, " , ")
[[1]]
[1] "63,98,131"
[[2]]
[1] "75,109,145"
[[3]]
[1] "66,104,139"
Но это не работает. Как я могу это исправить?
Это уже много раз упоминалось здесь - stackoverflow.com/questions/7069076/… - stackoverflow.com/questions/4350440/… - stackoverflow.com/questions/32042621/… - и различные дубликаты, на которые ссылается каждый из этих вопросов.
Вам нужно сделать ",", а не " , "





> dt=as.data.frame(matrix(unlist(strsplit(y$x,",")),ncol=dim(y)[1],byrow = T))
> dt
V1 V2 V3
1 63 98 131
2 75 109 145
3 66 104 139
Когда я запускаю на своей машине, выдает ошибку Error in strsplit(y$x, ",") : non-character argument
Хорошо. Думаю, я разобрался. Спасибо
Это потому, что когда вы создали y, он должен иметь stringsAsFactors=F в качестве аргумента внутри data.frame(). Вы можете либо исправить это, либо перейти на as.character(y$x).
Вы можете использовать
tidyr::separate.