防止应用将数据框行强制为数组

时间:2017-04-13 20:12:04

标签: r apply

我需要在data.frame上使用apply()函数,该数据框具有不同数据类型的列。

apply(X, MARGIN, FUN, ...)的文档说:

  

如果X不是数组而是具有非空昏暗值的类的对象(例如数据框),则应用尝试通过as.matrix将其强制转换为数组(如果它是二维的)(例如,数据框)或通过as.array。

在我的示例中,数字列被转换为字符串,但我想避免在基函数中调用as.numeric()。有没有其他替代方法可以避免强制进入阵列? (例如,强制列表)

示例代码:

df <- data.frame(name = "A", number = 1.0)

echo <- function(row) {
  data.frame(
    name = row["name"],
    number = row["number"],
    stringsAsFactors = FALSE
  )
}

copy <- apply(X = df, MARGIN = 1, FUN = echo)

class(copy[[1]]$number)

[1] "character"

0 个答案:

没有答案