gpt4 book ai didi

r - 从 data.frame 中提取单行而不丢失名称

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

<分区>

我只是从 data.frame 中提取一行。考虑例如

d=data.frame(a=1:3,b=1:3)
d[1,] # returns a data.frame
# a b
# 1 1 1

输出符合我的预期。尽管在处理包含单列的 data.frame 时,结果并不像我预期的那样。

d=data.frame(a=1:3)
d[1,] # returns an integer
# [1] 1

确实,在这里,提取的数据不再是data.frame,而是integer!对我来说,同一数据类型上的同一函数想要返回不同的数据类型似乎有点奇怪。此转换的问题之一是列名丢失。

为了解决这个问题,我做了

extractRow = function(d,index)
{
if (ncol(d) > 1)
{
return(d[index,])
} else
{
d2 = as.data.frame(d[index,])
names(d2) = names(d)
return(d2)
}
}

d=data.frame(a=1:3,b=1:3)
extractRow(d,1)
# a b
# 1 1 1

d=data.frame(a=1:3)
extractRow(d,1)
# a
# 1 1

但这似乎是不必要的麻烦。有更好的解决方案吗?

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