R将字符向量强制转换为字符和数字

时间:2014-03-07 08:27:35

标签: r vector character numeric coerce

我有一个矢量:

 > vek
[1] "0"    "0"    "NULL" "0"    "0"    "0"    "0"   "NULL"

我想将矢量强制转换为数字,其中是数字和字符串,其中是字符串

> vek
[1] 0    0    "NULL"  0    0    0    0   "NULL"

有可能吗?我该如何管理?

1 个答案:

答案 0 :(得分:2)

您不能在同一向量中包含不同类型的元素。但你可以在列表中做到这一点。也许你可以在list direclty中转换你的向量。

vekl <- as.list(vek)

for (i in 1: length(vekl)){
  temp <- as.numeric(vekl[[i]])
  if (! is.na(temp))
    vekl[[i]] <- temp
}

要避免出现警告,请使用:suppressWarnings( temp <- as.numeric(vekl[[i]]) )。它会忽略所有警告,因此您在使用此功能时必须注意......