我有一个名为all_input
的数据帧列表。这些数据帧中的每一个都有一个名为total_emissions
的列。在大多数这样的数据帧中,列类型是double
,但对于某些数据帧,列类型是factor
。
理想情况下,我希望使用loop
或lapply
遍历数据帧列表,查看total_emissions
列是否为double
,如果不是,则将其更改为double
。
我认为if_else语句可以很好地解决这个问题:如果列类型!= double,则将其更改为double,否则不执行任何操作。只是不确定如何在代码中实际编写此过程。
发布于 2020-06-15 22:44:13
我知道这已经回答了,但我仍然想分享我的代码,如果有人再次来到这个页面,并想要一个快速可重复的例子
#dummy data
df1 <- mtcars
df2 <- mtcars
df1$mpg <- as.factor(df1$mpg)
df_List <- list(df1,df2)
#code
unfactor <- function(x) {
if(is.factor(x[,1])){
x[,1] <- as.numeric(levels(x[,1])[x[,1]])
}
return(x)
}
out <- lapply(df_List, unfactor)
#output
str(out)
https://stackoverflow.com/questions/62397886
复制