如何解决从函数列表返回数据框类型时会发生变化
我在一个函数中生成两个数据帧,并在列表中返回它们
summarize_responses <- function(df,descriptor,subsetBy){
.
.
df_sum <- as.data.frame(df_sum)
df_sum_transpose <- as.data.frame(df_sum_transpose)
return_list <- list(df_sum,df_sum_transpose)
return(return_list)
}
在我的主例程中,我按如下方式收集这些数据帧:
df_lst <- summarize_responses(df,INDEX_SCORES_BREAKOUTS[i],DAILY_INDEX_SCORES)
df_a <- df_lst[1]
df_b <- df_lst[2]
但是如果我键入
Browse[2]> class(df_a)
[1] "list"
Browse[2]> typeof(df_a)
[1] "list"
基于我已将df_a和df_b强制为summarize_responses
中的数据帧这一事实,我希望df_a和df_b将是数据帧。但是这里出了点问题。通过键入即可轻松修复
df_a <- as.data.frame(df_lst[1])
df_b <- as.data.frame(df_lst[2])
我想了解为什么我的数据框变成了列表。
预先感谢您的解释
托马斯·飞利浦
解决方法
当您具有数据框列表时,使用单括号([
)访问列表中的元素总是会向您返回一个列表。考虑这个例子:
df_lst <- list(mtcars,iris)
class(df_lst[1])
#[1] "list"
这是因为使用[
可以从列表中选择多个元素。
df_lst[1:2]
如果要访问数据框,请使用[[
class(df_lst[[1]])
#[1] "data.frame"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。