我想获取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.
}
答案 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语言的新手,所以不了解所有这些基本功能:)