簡體   English   中英

R:使用變量中的列名讀取csv

[英]R: read csv with column names in variables

我想讀取一個 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()))

這個想法是在變量中分配列的名稱,以確保如果 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()))

謝謝你的幫助;)

如果您只想強加列名,您可以這樣做:

讀取沒有列名的數據:

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

您可以使用 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()))
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"))

這段代碼在我的系統上運行良好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM