替换R中每个数据帧中的所有因子变量
我有三个结构相同的数据帧。我想对每个变量执行相同的任务,比如将因子变量重新格式化为数值变量 假设每个数据帧由十个变量组成,其中五个有类因子,我希望它们是数值。这是我试过的替换R中每个数据帧中的所有因子变量,r,R,我有三个结构相同的数据帧。我想对每个变量执行相同的任务,比如将因子变量重新格式化为数值变量 假设每个数据帧由十个变量组成,其中五个有类因子,我希望它们是数值。这是我试过的 all.df <- list(df1, df2, df3) factors <- sapply(all.df[[1]], is.factor) all.df <- lapply(all.df, function(x) { lapply(x[factors], as.numeric(as.charact
all.df <- list(df1, df2, df3)
factors <- sapply(all.df[[1]], is.factor)
all.df <- lapply(all.df, function(x) {
lapply(x[factors], as.numeric(as.character(x)) })
这样做的问题是,在all.df中,我只使用因子变量,而我仍然需要其他非因子变量,而不是重新格式化的变量 试试看:
all.df <- lapply(all.df, function(x) {
x[factors] <-lapply(x[factors], function(x) as.numeric(as.character(x)))
x})
str(all.df[[1]])
#'data.frame': 5 obs. of 3 variables:
# $ col1: num 6 7 8 9 10
# $ col2: num 1 2 3 4 5
# $ col3: int 1 2 3 4 5
数据
替换后在函数中调用x是关键。
df <- data.frame(col1=factor(6:10),col2=factor(1:5), col3=1:5)
all.df <- list(df,df,df)
factors <- sapply(all.df[[1]], is.factor)