R 初始化完整的空数据框(无行、无列)
下面是一个创建没有行和列的空数据帧的技巧:R 初始化完整的空数据框(无行、无列),r,dataframe,R,Dataframe,下面是一个创建没有行和列的空数据帧的技巧: iris[FALSE,FALSE] #>包含0列和0行的数据帧 看起来更聪明的代码会创建一个虚假的列: xdfempty.data.frame包含0列和0行的数据帧 #评论中的邮件建议(最快) empty.data.frame2单位:微秒 #>expr最小lq平均uq最大neval #>data.frame()12.83113.4485 15.18162 13.879 14.378 65.967 100 #>empty.data.frame()8.3
iris[FALSE,FALSE]
#>包含0列和0行的数据帧
看起来更聪明的代码会创建一个虚假的列:
xdfempty.data.frame包含0列和0行的数据帧
#评论中的邮件建议(最快)
empty.data.frame2单位:微秒
#>expr最小lq平均uq最大neval
#>data.frame()12.83113.4485 15.18162 13.879 14.378 65.967 100
#>empty.data.frame()8.323 9.0515 9.76106 9.363 9.732 19.427 100
#>empty.data.frame2()5.884 6.9650 7.63442 7.240 7.540 17.746 100
但是这个问题是关于指定列类型的。结构(list(),class=“data.frame”)
将是一种尝试向列表中添加类的原始方法。我不认为这是一个重复的问题。我说他们试图“满足一个可以处理空数据帧但不能为空的函数”。。。如果OP是编写函数的人,那么我可以建议他们从错误的方面攻击它吗?测试继承(x,“data.frame”)
怎么样?它将通过数据帧
(空或不空),但将失败空
。如果他们试图将数据传递到现有函数中,那么data.frame()
应该绕过测试(无论如何很可能是上面的测试)。@JonathanCarroll OP试图满足tidyr
包中的unnest
)为什么我没想到?性能真的是个问题吗?唯一可能的缩放是重复。@JonathanCarroll如何缩放空数据帧?@Pierrelaffortune这是我的观点。这不会是一个昂贵的过程,无论你用哪种方式。你可能会做很多次(在一些奇怪的场景下),但即使这样也不会慢。他的测试最有可能是为了了解哪个函数调用以最少的内部移动到达点。“最少的内部移动”-确切地说,是为了尽可能接近像“int a;”这样的变量声明。我应该在问题中这样说。实际上,创建一个并复制它要快得多。
df <- data.frame()
str(df)
'data.frame': 0 obs. of 0 variables