извлечение второго наблюдения из вектора символов в кадре данных - PullRequest
1 голос
/ 14 июля 2020

Извлеките второе наблюдение из вектора c() во фрейме данных.

У меня есть данные, которые выглядят так:

                          splitNames
1  , grupo, modelo, s.a.b., de, c.v.
2                         , gymboree
3                           , cerner
4     , stellus, capital, investment
5         , cambium, learning, group
6               , cornell, companies
7                      , the, boeing
8                        , wd-40, co
9                         , glencore
10                    , the, valspar

Я хочу извлечь grupo, gymboree, cerner, stellus, cambium, Cornell, the, wd-40, Glencore и the из данных. В настоящее время я могу это сделать, но он извлекает только grupo из данных. y %>% mutate(splitNames[[1]][[2]])

Данные:

structure(list(splitNames = list(c("", "grupo", "modelo", "s.a.b.", 
"de", "c.v."), c("", "gymboree"), c("", "cerner"), c("", "stellus", 
"capital", "investment"), c("", "cambium", "learning", "group"
), c("", "cornell", "companies"), c("", "the", "boeing"), c("", 
"wd-40", "co"), c("", "glencore"), c("", "the", "valspar"))), class = "data.frame", row.names = c(NA, 
-10L))

Ответы [ 3 ]

2 голосов
/ 14 июля 2020

Мы также можем использовать [ без анонимной функции

sapply(data$splitNames, `[`, 2)
#[1] "grupo"    "gymboree" "cerner"   "stellus"  "cambium"  "cornell"  "the"      "wd-40"    "glencore" "the" 
2 голосов
/ 14 июля 2020

В зависимости от вашей структуры данных вы можете использовать:

sapply(data$splitNames, function(x) x[2])

 [1] "grupo"    "gymboree" "cerner"   "stellus"  "cambium"  "cornell" 
 [7] "the"      "wd-40"    "glencore" "the" 
1 голос
/ 14 июля 2020

Поскольку вы в любом случае используете Tidyverse, вы также можете сделать это следующим образом:

library(purrr)
       
map_chr(data$splitNames, 2)
#>  [1] "grupo"    "gymboree" "cerner"   "stellus"  "cambium"  "cornell" 
#>  [7] "the"      "wd-40"    "glencore" "the"

Создано 14 июля 2020 г. пакетом REPEX (v0. 3,0)

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