被R里面不同数据类型搞得很郁闷,今天在用strsplit做数组的字符串切分时,居然发现结果是用list保存的,list最麻烦的地方是只能行索引,不能列索引,原因是list是以hash方式来组织数组
可以通过list[[key]]来查看该key下所有元素,可是如果想统一看每个索引下的第一个元素,则毫无方法。找到一个list转换为matrix的方法,分享如下:
<br />
x <- c("34,string,23", "2,sl,32")<br />
y <- strsplit(x, ",")<br />
y # 可是此时我想统一使用每个元素的第一个数(34,2)作为一个向量赋值,行不通<br />
# [[1]]<br />
# [1] "34" "string" "23"<br />
#<br />
# [[2]]<br />
# [1] "2" "sl" “32”</p>
<p>y_matrix<-do.call(rbind, y)<br />
# 注意转换前y最好为m*n的完整list,否则y缺少的部分将被循环补齐</p>
<p>y.matrix<br />
# [,1] [,2] [,3]<br />
# [1,] "34" "string" "23"<br />
# [2,] "2" "sl" "32"<br />
</p>
在这里,如果第二行只有("2", "s1"),则第三个元素被循环补齐为第二行的第一个元素,变成
<br />
y.matrix<br />
# [,1] [,2] [,3]<br />
# [1,] "34" "string" "23"<br />
# [2,] "2" "sl" "2"<br />
</p>