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

时间:2017-09-21 13:12:17

标签: r csv names

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

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

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

我们的想法是在变量中指定列的名称,以确保如果更改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()))

感谢您的帮助;)

3 个答案:

答案 0 :(得分:2)

您只需使用col_names参数指定列名:

> library(readr)
> read_csv("example.csv", col_names = c("name", "year_a", "ps"), col_types = cols(col_character(), col_character(), col_double()))
# A tibble: 4 x 3
   name year_a    ps
  <chr>  <chr> <dbl>
1     1      2   3.0
2 test1   2017  35.5
3 test2   2018  44.5
4 test3   2019  22.0

因此,要使用您的示例变量,您可以这样做:

library(readr)
read_csv("example.csv", col_names = c(car_names, year_a, engine_power), col_types = cols(col_character(), col_character(), col_double()))

答案 1 :(得分:1)

如果只想使用列名,则可以执行以下操作:

读取没有列名的数据:

data <- read.csv(file="myfile.csv", header=FALSE, sep=",")

强加列名:

names(data) <- c('id','name','type')

查看具有列名的数据:

data

id      name    type
37707   name1   t1 
37726   name2   t2 
37737   name3   t3

答案 2 :(得分:0)

data1 <- read.csv("2016.csv",col.names = c("consitituency_name","candidate_surname","candidate_first_name","result","count_number","transfers","votes","total_votes","candidate_id","party"))

此代码在我的系统上运行良好