Разделить вектор chr на фрейм данных по первому слову? - PullRequest
0 голосов
/ 07 октября 2018
library(tidyverse)
con = url("https://s3-us-west-1.amazonaws.com/fasttext-vectors/word-vectors-v2/cc.af.300.vec.gz", "r")
con = gzcon(con)
wv = readLines(con, n = 1000)

У меня есть много векторов chr вида:

> str(wv[1][[1]])
 chr "in 0.0183 0.0885 0.0084 0.0157 -0.0236 0.0419 -0.0224 0.0007 -0.0232 0.0259 -0.0037 -0.0167 -0.0254 -0.0046 -0.0209 0.0154 0.00"| __truncated__
> str(wv[2][[1]])
 chr "n 0.0102 0.2465 0.0483 -0.0223 -0.0253 -0.0609 0.0218 0.0273 -0.0075 0.0406 -0.0180 0.0033 -0.0012 0.0160 0.0171 -0.0359 0.0350"| __truncated__
> str(wv[20][[1]])
 chr "was -0.0028 -0.0193 -0.0520 0.0092 -0.0437 0.0029 0.0057 -0.0276 -0.0028 0.0057 0.0182 0.0111 0.0284 0.0033 -0.0183 0.0406 -0.0"| __truncated__

Итак, первый элемент - это chr в текстовой форме, а после первого пробела - серия чисел.

Я хотел бы создать фрейм данных, где первый столбец - это слово, а последующие столбцы - это числа.В этом случае будет 3 строки, первый столбец содержит «in», «n», а затем «was».

Tried:

wv1 <- lapply(wv, function(i) {strsplit(i, " ") %>% as.data.frame()}) %>% unlist()

Однако это вернуло ошибку:

Error in structure(res, levels = lv, names = nm, class = "factor") : 
  'names' attribute [300701] must be the same length as the vector [1000]

Как я могу превратить wv в фрейм данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...