是否可以将列索引传递给read_csv?
我将许多CSV文件传递给具有不同标题名称的read_csv,而不是指定要使用列索引的名称。
这可能吗?
df.list <- lapply(myExcelCSV, read_csv, skip = headers2skip[i]-1)
或者,可以使用紧凑的字符串表示形式,其中每个字符代表一列:c =字符,i =整数,n =数字,d =双精度,l =逻辑,f =因数,D =日期,T =日期时间,t =时间,?=猜测,或使用'_'/'-'跳过该列。
如果您知道文件中的总列数,则可以这样操作:
my_read <- function(..., tot_cols, skip_cols=numeric(0)) {
csr <- rep("?",tot_cols)
csr[skip_cols] <- "_"
csr <- paste(csr,collapse="")
read_csv(...,col_types=csr)
}
如果您事先不知道总列数,则可以向此函数添加代码以仅读取文件的第一行并计算返回的列数...
FWIW该skip
参数可能没有按照您的想法做(它跳过行而不是选择/取消选择列):据我所知?readr::read_csv()
,似乎没有任何方便的方法来跳过和/或包括特定的列(按名称或按索引) )除外,例如上文建议的某些临时机制;这可能值得在readr
问题列表中进行功能请求/讨论?(例如,可以通过名称或位置指定的添加cols_include
和/或cols_exclude
参数?)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句