今天有这样一个列表,各元素均为一维向量,但不等长:
>head(mix1_integ_list1)
[[1]]
[1] "" "24.79854965" "25.4642601" "29.56749916" "26.34864998" "25.11140633"
[[2]]
[1] "" "27.93592644" "27.48092651" "29.71414375" "27.00846672" "26.63305092"
[[3]]
[1] "" "29.53038406" "28.67427826" "32.92374802" "28.79744339" "25.38754845"
[[4]]
[1] "" "23.89220619" "24.68287468" "33.90857315" "29.56409454" "28.17777443"
[[5]]
[1] "" "32.46670914" "32.79508972" "30.58837128"
[[6]]
[1] "" "32.84621048" "Undetermined" "33.48614502"
然后想把列表每个元素的第一个值,即""去掉,经论坛求助,得到如下解决方法
data.new<-lapply(data,function(x){x[-1]})
转换为自己的数据就是
> mix1_integ_list2 <- lapply(mix1_integ_list1, function(x){x[-1]})
得以成功。
加注:
该列表中元素的二维元素应该以
data[[i]][1] 这样的形式来访问,其中i表示第几个元素。
另外一些小知识:
{}代表“函数内包含的运行模块”,是一段代码的作用范围;
[[]]是列表专用的元素位置标记表示。
[]是矩阵,向量,数据框中元素位置的表示
()是函数的表示,中间是带入函数中的相关参数
[-1]、[1]这是现在支持向量运算的软件中都有的操作,前者表示不显示对应位置的元素,比如说不显示第一个元素(或是行/列的所有元素)。第二个是表示显示对应位置的元素,比如说显示第一个元素(或是第一行或列的所有元素)。