获取CSV文件的列名

时间:2019-05-20 09:01:50

标签: r

我想获取CSV数据的列名,并在列名上应用一些功能。

我尝试了以下代码,但是输出仅返回数据类型

reading_data <- read.csv("test.csv")

print("Header Row:")
print(reading_data[0,])  # This gives me a list of column names correctly
print(class(reading_data[0,])) # O/P is: "data.frame"
print("++++++++++++++++++++++++++++")
for(i in 1:ncol(reading_data)){ 
    print(reading_data[0,i]) # O/P is: numeric(0) ; I want string value of data name here.
} 

3 个答案:

答案 0 :(得分:1)

reading_data[0,]不会返回您的列名,它会返回一个未选择行的数据框。

mtcars

为例
mtcars[1, ]
#          mpg cyl disp  hp drat   wt  qsec vs am gear carb
#Mazda RX4  21   6  160 110  3.9 2.62 16.46  0  1    4    4

这是mtcars的第一行,具有列名。

现在,如果您执行mtcars[0, ]

mtcars[0, ]
# [1] mpg  cyl  disp hp   drat wt   qsec vs   am   gear carb
#<0 rows> (or 0-length row.names)

它返回列名,因为没有选择行,因为索引0处没有行。

如果要在每个列名上分别应用某些功能,则可以

for(i in names(reading_data)){ 
    print(i) 
    #add the operation to be applied here
} 

names(mtcars)colnames(mtcars)将直接为您提供列名。

names(mtcars)
# [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear" "carb"
colnames(mtcars)
# [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear" "carb"

答案 1 :(得分:1)

获取列名的方法不是reading_data[0,],而是使用colnames()函数...在这种情况下,是colnames(reading_data)

如果要将它们存储在矢量中,请使用

colnames_df <- colnames(reading_data)

您可以将其应用到其中(也可以将其直接应用到colnames(reading_data))。

答案 2 :(得分:1)

感谢您的回答。

名称(reading_data)达到了我的目的。

col_names = names(reading_data)

for(i in 1:length(col_names)){ 
  print(col_names[i]) 
  # Operation on col_names[i]
} 

PS:我是R语言的新手,所以不了解所有这些基本功能:)