Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中将一个混合变量的向量拆分为两个单独的向量_R_Variables_Mixed - Fatal编程技术网

如何在R中将一个混合变量的向量拆分为两个单独的向量

如何在R中将一个混合变量的向量拆分为两个单独的向量,r,variables,mixed,R,Variables,Mixed,我使用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"

我使用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的矩阵中,但是由于缺少一些数据点,因此使用这种方法时结果不正确。我想我需要先解决丢失数据的问题,然后再将其放入两列矩阵中。有人知道这个问题吗?任何帮助都将不胜感激。

像这样的东西会有用的

# 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)}}))
#虚拟数据

我认为这段代码有一些错误,因为当我应用它时,R会给出一些警告,比如“强制引入NAs”。请您仔细检查一下,或者我遗漏了什么?它会给出这些警告,因为它依赖于强制转换为数值,然后查找
NA
值(这正是警告告诉您它正在做的事情!在应用代码后,我没有检查变量。变量似乎是正确的,即使R出现错误;)再次感谢您的时间和帮助。