Функция Stata "использовать если" в R - PullRequest
0 голосов
/ 05 июля 2018

Есть ли способ загрузить файл .dta на основе определенных критериев.

Например, в Stata вы можете загрузить файл, используя: use if vara==1 using "some/file/path"

Я видел старые посты о загрузке только определенного количества наблюдений, но не видел пост, посвященный этой функции.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

По отношению к первой части вы можете сделать простое if..else или сделать что-то вроде этого:

#Type of file
type=c(2)
#Variable to store your file
fn=switch(i,"filename1","filename2","filename3")
# fn now is "filename2"

относительно загрузки только определенного количества наблюдений

Это возможно. Самый простой способ - проверить руководство по вашей функции read.csv(). Введите в приглашении R следующее: help(read.csv). Откроется окно справки с документацией. Вы можете наблюдать подпись вашей функции интереса:

read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)

и ниже, один из разрешенных параметров этой функции - тот, который вы ищете:

nrows integer: the maximum number of rows to read in. Negative and other invalid values are ignored.

0 голосов
/ 05 июля 2018

Следующее случайным образом присваивает 0 или 1 переменной с именем vara и считывает ее из 1 из 2 различных файлов CSV, в зависимости от значения vara:

data(iris)

write.csv(iris,"iris.csv")
write.csv(iris1,"iris1.csv")

vara <- ifelse(rnorm(1) > .15,1,0) # randomly assign a 1 or 0

# Stata: use if vara==1 using "some/file/path"

new_data <- ifelse(vara==1,read.csv("iris.csv"),read.csv("iris1.csv"))

Полагаю, вы просто спрашиваете, как условно прочитать файл в R, как вы это делали в Stata. Если вы также имеете в виду, как на самом деле читать ваши старые dta файлы, то вам следует дополнительно использовать специальную функцию из одной из библиотек, которая делает это, например, read.dta, упомянутая @thelatemail в комментарии (см. Также: https://stat.ethz.ch/R-manual/R-devel/library/foreign/html/read.dta.html).

Если вы читаете файлы общего типа (например, csv), и они очень большие, рассмотрите возможность использования fread из data.table или read_csv из readr.

...