假设您有一个包含1000个变量的.DTA或.SAV文件。这个文件被称为“总数据”,您也有一个名为“SOME”的.CSV文件,其中包含一个名为“保存”的列;在“保存”列中是来自“总数据”的25个变量的名称。
在R中是否有一种在.DTA或.SAV文件中读取的方法;如果是“总数据”,则是保留列中变量的子集?
发布于 2021-03-03 19:46:55
如果文件是.sav,则可以使用来自haven的read_sav。它还具有参数col_select,它可以接受列名的向量。来自?read_sav的文档显示
col_select -一个或多个选择表达式,如dplyr::col_select()。使用c()或list()可以使用多个表达式。有关可用选择选项的详细信息,请参见?dplyr::select。将只从data_file读取指定的列。
其策略是读取.csv文件,将“保存”列解压缩为vector,并输入“read_sav`的col_select”
library(readr)
library(haven)
library(dplyr)
cols_to_select <- read_csv("SOME-DATA.csv") %>%
pull(KEEP)
df1 <- read_sav("TOTAL-DATA.sav", col_select = cols_to_select)注意:如果它是一个.dta文件,请使用来自haven的read_dta。它还具有相同的col_select参数
https://stackoverflow.com/questions/66462898
复制相似问题