R语言List和Vector互转源码分享
正文
1.List转为Vector
一行代码搞定:dest_vector = as.vector(unlist(src_list))
附带解释:
- src_list:是List列表类型,也是入参,需要被转化的对象
- dest_vector:列表转化后的向量对象,算是出参
- as.vector():把其他数据类型转化为向量类型,具体可在R交互终端中运行命令help(as.vector),查看英文解释
- unlist():遍历List列表对象,把原子类型的变量转存到一个向量中。英文原文:Given a list structure
x
,unlist
simplifies it to produce a vector which contains all the atomic components which occur inx
.
2.Vector转为List
一行代码搞不定,所以封装了一个函数
源代码:
func.vector2List = function(src_vector,dest_list){
#说明 向量一经定义便不能删除元素,只能增加容量或修改元素的值
# 本函数的思路就是定义一个中间变量转存Vector元素,在中间变量中
# 删除或更新元素,然后把中间变量转化为Vector返回
#参数约束
temp_list = list();
len = 0;
# convert
for(v in src_vector){
# add your condition to check whether save or not
dest_list[len+1] = v;
len = len + 1;
}
# return
return (dest_list);
}