R:使用变量中的列名读取csv

Kar*_*025 3 csv r names

我想读取一个 csv 文件并使用变量中的列名。当然,变量中的字符串等于 csv 文件的列名。

csv 列中的名称是例如 "name" 、 "ps" 和 "year"。当我只想读取 csv 并分配列类型(没有任何变量)时,我使用:

library(readr)   
CarTest <- read_csv("~/_file.csv", 
                                  col_types = cols( 
                                  name = col_character(),
                                  year_a = col_character(),       
                                  ps =col_double()))
Run Code Online (Sandbox Code Playgroud)

这个想法是在变量中分配列的名称,以确保如果 csv 文件中的列名称发生更改,则只需要更改变量字符串。所以,我想在变量中分配列名(仍然是 csv_file 中的列名和变量中的字符串是相同的)。我尝试了不同的方法:这个例子(希望如此)表明,我尝试将变量的字符串粘贴car_names到read_csv函数中。但显然get是错误的方法:

library(readr)    
car_names <- "name"      
engine_power <- "ps"
year_a <-"year" 



    CarTest <- read_csv("~/_file.csv", 
                                  col_types = cols( 

                                  get("car_names") = col_character(),
                                  get("year_a") = col_character(),       
                                  get("engine_power") =col_double()))
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助 ;)

Gra*_*non 5

如果您只想强加列名,您可以这样做:

读取没有列名的数据:

data <- read.csv(file="myfile.csv", header=FALSE, sep=",")
Run Code Online (Sandbox Code Playgroud)

强加列名:

names(data) <- c('id','name','type')
Run Code Online (Sandbox Code Playgroud)

使用列名查看数据:

data

id      name    type
37707   name1   t1 
37726   name2   t2 
37737   name3   t3
Run Code Online (Sandbox Code Playgroud)