R 在函数中选择列的不同方式会导致不同的结果,为什么?

R 在函数中选择列的不同方式会导致不同的结果,为什么?,r,R,我编写了一个简短的函数来清理列表中的一些数据帧。使用df[,1]方法选择列时,my函数不起作用。但是,当我选择使用df$列时,它会这样做。为什么会这样 columns_1 <- function(x) { x[,1] <- dmy_hm(x[,1]) x[,2] <- NULL x[,3] <- as.numeric(x[,3]) x[,4] <- NULL return(x) } MS_ <- lapply(MS_, columns_1

我编写了一个简短的函数来清理列表中的一些数据帧。使用df[,1]方法选择列时,my函数不起作用。但是,当我选择使用df$列时,它会这样做。为什么会这样

columns_1 <- function(x) {
  x[,1] <- dmy_hm(x[,1])
  x[,2] <- NULL
  x[,3] <- as.numeric(x[,3])
  x[,4] <- NULL
  return(x)
}

MS_ <- lapply(MS_, columns_1)


columns_2 <- function(x) {
  x$DateTime <- dmy_hm(x$DateTime)
  x$LogSeconds <- NULL
  x$Pressure <- as.numeric(x$Pressure)
  x$Temperature <- NULL
  return(x)
}

MS_ <- lapply(MS_, columns_2)

问题是分配是在第一次运行之后执行的,这里有些列丢失了

library(lubridate)
MS_ <- lapply(MS_, columns_1)
库(lubridate)

MS_u问题在于分配是在第一次运行之后执行的,这里一些列丢失了

library(lubridate)
MS_ <- lapply(MS_, columns_1)
库(lubridate)

小姐。你确定你有一个
数据的
列表
。框架
s会是一个
矩阵
,因为
$
提取不适用于
矩阵
。请检查
str(MS_[[1]])
小心数字索引。当你做
x[,2]时,你确定你有一个
列表
数据。框架
s会是一个
矩阵
,因为
$
提取不适用于
矩阵
。请检查
str(MS_[[1]])
小心数字索引。当你做
x[,2]
MS2_ <- lapply(MS_, columns_1)
set.seed(24)
df1 <- data.frame(DateTime = format(Sys.Date() + 1:5, "%d-%m-%Y %H:%M"),
    LogSeconds = 1:5, 
    Pressure = rnorm(5), Temperature = rnorm(5, 25),
             stringsAsFactors = FALSE)
MS_ <- list(df1, df1)