sapply 输出的 Dataframe 不是 DataFrame

问题描述 投票:0回答:1

我的 sapply 函数的返回值,在一个输入项上,是一个列表而不是数据框。我不明白为什么。我知道 sapply 通常会生成所有返回值的列表;我很困惑为什么单个输入的返回值是一个列表。

这个例子有点傻,但它说明了问题。

> alphabet <- data.frame(letters = letters, numbers = 1:26)
> word <- c("w", "o", "r", "d")

> w <-sapply(word[1], function(x) {
    n <- alphabet[alphabet$letters == x,"numbers"]
    df <- data.frame(letter = x, number = n)
    return(df)
  }, USE.NAMES = F)

#        [,1]
# letter "w" 
# number 23  

输出是一个长度为 2 的列表,即使

df
应该是一个数据框。

我希望输出与在匿名函数外部调用

data.frame()
相同:

> data.frame(letter = "w", number = 23) 
#   letter number
# 1      w     23

为什么我的 sapply 输出与我在

data.frame()
之外调用
sapply()
时的形式不同?

r dataframe sapply
1个回答
0
投票

您可以使用

as.data.frame(t(w))

转换为 data.frame
© www.soinside.com 2019 - 2024. All rights reserved.