Извлечь столбец строк из фрейма данных в R, когда они являются «факторами» - PullRequest
0 голосов
/ 22 сентября 2018

В настоящее время у меня есть большой фрейм данных, в котором я не обязательно знаю имена всех строк, которые хранятся в виде строк в первом столбце (в данном случае, названия стран, для которых предоставлены некоторые данные).Мне нужно получить эти данные для других целей, и я просто знаю, что первые 56 строк содержат все имена, которые мне нужны, по одному разу.

Я думал, что мог бы просто сделать вектор этих именперебирая цикл for следующим образом:

dat=read.csv("foo.csv",header=TRUE)
Names=character(56)
for (i in 1:56){Names[i]=dat[[i,1]]}

, но в результате получается множество целых чисел в именах.Когда я запускаю str(dat$NAMES) [столбец, в котором я заинтересован], я получаю следующее:

Factor with 56 levels "Angola", "Benin",...: 1 3 4 5 15 27 32 33 39 40 ...

Это целые числа, которые я получаю, но не могу для жизнимне понять, как получить строки вместо этого.

1 Ответ

0 голосов
/ 22 сентября 2018

Во-первых, проблема заключалась в том, что read.csv приводил к коэффициенту в первом столбце, когда OP думал, что это символьный вектор.

Этого можно избежать при загрузке данных в настройку R stringsAsFactors = FALSEв read.csv.

dat <- read.csv("foo.csv", header = TRUE, stringsAsFactors = FALSE)
#extract the first 56 entries from the first column
Names <- dat[1:56, 1]

Если stringsAsFactors = FALSE не вариант, используйте as.character, чтобы преобразовать этот вектор в тип символа.

dat <- read.csv("foo.csv", header = TRUE, stringsAsFactors = TRUE)
#extract the first 56 entries from the first column
Names <- as.character(dat[1:56, 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...