我想读取一个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()))
感谢您的帮助;)
答案 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"))
此代码在我的系统上运行良好