跳过R中for循环中的特定列

时间:2018-10-31 17:09:13

标签: r for-loop lapply

从此处开始的一些示例代码

ST <- c("AL","AL","AK","AK") 
X1 <- c("2,21", "2,29", "3,49", "2.3") 
X2 <- c("10,333","10,333", "11,333", "11,333") 
df <- cbind(ST, X1, X2) 

我正在尝试使用for循环或lapply编写一个循环,该循环可以解析出数字,但是跳过第一行的状态名称。到目前为止,我一直坚持:

  for(i in seq_along(df[,-1]))  {
  df[[i]] <- parse_number(df[[i]])
  } 

这将在ST列中生成NA。我敢肯定有一个简单的解决办法,但它使我无法幸免。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以在下面尝试,您可以在此处使用cout来避免for循环,lapply或sapply可以按列迭代:

lapply/sapply

注意:我在这里使用ST <- c("AL","AL","AK","AK") X1 <- c("2,21", "2,29", "3,49", "2.3") X2 <- c("10,333","10,333", "11,333", "11,333") df <- data.frame(ST,X1, X2) df[,-1] <- lapply(df[,-1] , readr::parse_number) 中的parse_number。没有提及您的readr函数,因此我假设它来自parse_number

输出:

readr