0

我使用 strsplit 函数从数据文件中提取了一个包含数字和字符串值的混合变量。我最终得到了一个变量,如下所示:

> sample3

[[1]]
[1] "1200" "A"  

[[2]]
[1] "1193" "A"  

[[3]]
[1] "1117" "B"  

[[4]]
[1] "5663" 

[[5]]
[1] "7003" "C" 

[[6]]
[1] "1205" "A"  

[[7]]
[1] "2100" "D"  

[[8]]
[1] "1000" "D"  

[[9]]
[1]  "D" 

[[10]]
[1] "1000" "B"

我需要将其拆分为两个变量/向量(或转换为两列矩阵)。我尝试使用 unlist(sample3) 代码,然后将所有值放入 ncol=2 的矩阵中,但是由于缺少一些数据点,因此当我使用这种方式时结果不正确。我想我需要在放入两列矩阵之前解决缺失数据的问题。有人对这个问题有任何想法吗?任何帮助将不胜感激。

4

1 回答 1

1

Something like this will work

# dummy data
x <- list(c('100','a'), '100', c('a'), c('1000','b'))

numeric_x <- unlist(lapply(x,function(x) {.x <- head(x,1); as.numeric(.x)}))

character_x <- unlist(lapply(x,function(x) {.x <- tail(x,1); if(is.na(as.numeric(.x))) {return(.x)} else {return(NA)}}))

There will be a much nicer regex answer I am sure

于 2012-11-14T05:32:31.660 回答