R中append()函数行为异常,如何构建目标向量列表?
问题解决:在R中创建包含向量的列表
你当前的代码里,append(columns, column)会把column向量拆成单个数值逐个添加到列表,导致最终列表全是单个元素。要让每个公司对应列表里的一个向量元素,有两种简单方法:
方法一:用list()包裹向量后再append
companies <- list("AAPL", "MSFT") columns <- list() for (company in companies) { column <- c(get_price(company), get_balance_sheet_data(company), get_ebit(company)) columns <- append(columns, list(column)) # 将向量包装为单个列表元素再添加 }
方法二:预先初始化列表,通过索引赋值(更高效)
companies <- list("AAPL", "MSFT") # 预先创建对应长度的空列表,避免循环中频繁扩容 columns <- vector("list", length(companies)) for (i in seq_along(companies)) { company <- companies[[i]] column <- c(get_price(company), get_balance_sheet_data(company), get_ebit(company)) columns[[i]] <- column # 直接给对应位置的列表元素赋值 }
原理说明
append()函数默认会把输入的向量拆分成独立元素添加。用list(column)把向量打包成一个单独的列表元素后,append就会把这个完整向量作为列表的一个子元素加入,而不是拆分它。
内容的提问来源于stack exchange,提问作者Filip
相关产品推荐
相关产品推荐

