一旦元素被移除,数据帧就不再是数据帧

Nep*_*son 5 r dataframe

我有一个简单的数据框

myframe<-data.frame(c(NA, NA,NA, 1,2,3,4,5,NA,7,8,9))
Run Code Online (Sandbox Code Playgroud)

我删除了第一个元素,如下所示:

myframe<-myframe[-1,]
Run Code Online (Sandbox Code Playgroud)

当我这样做时:

is.data.frame(myframe)
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

[1] FALSE
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式解决:

myframe<-data.frame(myframe[-1,])
Run Code Online (Sandbox Code Playgroud)

但我认为数据框在删除元素后不会停止成为数据帧

这里发生了什么事?我整天都在编码,我的大脑都被炒了,我无法弄清楚这一点.请帮忙.

我的目标是仅删除数据帧中NAs的前n次出现.如果它们出现在中间的某个地方,那没关系.

谢谢!

kon*_*vas 9

因为您只有一列,所以R会自动将结果转换为矢量.如果要保留数据框结构,可以键入

myframe[-1, , drop = FALSE]
Run Code Online (Sandbox Code Playgroud)

  • 并从文档:drop:logical.如果为TRUE,则将结果强制转换为可能的最低维度.如果只剩下一列,则默认为丢弃,但如果只剩下一行则不丢弃. (2认同)