作为一个例子,我想要一个函数,它将迭代数据帧中的列并打印出每个列的数据类型(例如,"数字","整数","字符"等)
没有变量,我知道我可以做到class(df$MyColumn)并获得数据类型.如何更改它以便"MyColumn"是一个变量?
我正在尝试的是
f <- function(df) {
for(column in names(df)) {
columnClass = class(df[column])
print(columnClass)
}
}
Run Code Online (Sandbox Code Playgroud)
但这只是打印出[1] "data.frame"每列.
由于数据框只是一个列表,因此您可以使用循环列lapply并将class函数应用于每列:
lapply(df, class)
Run Code Online (Sandbox Code Playgroud)
为了解决用户的评论之前潜担忧....如果你建立,做了功能不管它是你希望一列,那么这会成功:
func <- function(col) {print(class(col))}
lapply(df, func)
Run Code Online (Sandbox Code Playgroud)
它实际上大部分相当于:
for(col in names(df) ) { print(class(df[[col]]))}
Run Code Online (Sandbox Code Playgroud)
并且不会有一个不需要的'colClass'变量使.GlobalEnv混乱.
小智 4
之前使用逗号column:
for(column in names(df)) {
columnClass = class(df[,column])
print(columnClass)
}
Run Code Online (Sandbox Code Playgroud)