在 R 中,如果数据帧只有一列,为什么从数据帧中选择行会返回数据作为向量?
假设我们想要逐行访问数据帧中的数据。这些示例经过简化,但是当按行名称对数据框进行排序时,例如 (df[order(row.names(df)]
),我们使用相同的技术。
如果数据框有一列,我们返回一个原子向量:
> df
x1
a x
b y
c z
> df[1, ] # returns atomic vector
[1] x
如果数据帧有两列,我们返回一个包含行名称的 1 行数据帧:
> df
x1 x2
a x u
b y v
c z w
> df[1, ] # returns data frame
X1 X2
a x u
我不明白为什么对数据帧的相同操作会产生两种类型的结果,具体取决于框架有多少列。
Suppose we want to access data from a data frame by row. The examples are simplified but when ordering a data frame by row names, for example, (df[order(row.names(df)]
) we use the same technique.
If the data frame has one column, we get back an atomic vector:
> df
x1
a x
b y
c z
> df[1, ] # returns atomic vector
[1] x
If the data frame has two columns, we get back a 1-row data frame including the row name:
> df
x1 x2
a x u
b y v
c z w
> df[1, ] # returns data frame
X1 X2
a x u
I don't understand why the same operation on the data frame yields two types of results depending on how many columns the frame has.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为
[
的默认参数是drop=TRUE
。来自
?"["
默认行为:
使用
drop=FALSE
:It's because the default argument to
[
isdrop=TRUE
.From
?"["
The default behaviour:
Using
drop=FALSE
: