gpt4 book ai didi

r - 在应用结果上设置名称

转载 作者:行者123 更新时间:2023-12-04 09:35:04 24 4
gpt4 key购买 nike

我正在将函数应用于 dataframe

但与 sapply 及其 friend 不同,apply 没有任何 USE.NAME 参数来获取命名列表作为返回对象。

在这个例子中,我希望 C 列是返回列表的名称:

df = data.frame(A=c(1,2,3), B=c(9,5,7), C=c("A", "Z", "E"))
apply(df, 1, function(x){
data.frame(xxx=as.numeric(x[1]) * as.numeric(x[2]))
})
# [[1]]
# xxx
# 1 9
#
# [[2]]
# xxx
# 1 10
#
# [[3]]
# xxx
# 1 21

我怎样才能做到这一点?

最佳答案

你可以这样做:

apply(data.frame(df, row.names = df$C), 1, function(x){
data.frame(xxx=as.numeric(x[1]) * as.numeric(x[2]))
})
#$A
# xxx
#1 9
#
#$Z
# xxx
#1 10
#
#$E
# xxx
#1 21

说明:applydata.frame 的相应 MARGIN 的 dimnames 中选取 list 名称(在您的情况下 MARGIN=1,因此 list 名称将对应于行名)。

关于r - 在应用结果上设置名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49598246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com