R数据框选中某列之后不降为成列表

1. 问题

数据处理中一个令人头疼的事情是选中数据框中的某列时经常会被降维成列表而不是保持原来数据框的结构,如下:

student <- data.frame(ID=c(11,12,13),Name=c("Devin","Edward","Wenli"),Gender=c("M","M","F"))
student
数据框

当我们想得到name这一行的时候会采用以下方法

name1 <- student$Name
name2 <- student[,2]
str(name1)
str(name2)
#Factor w/ 3 levels "Devin","Edward",..: 1 2 3
#Factor w/ 3 levels "Devin","Edward",..: 1 2 3

可以看到数据都是factor类型的,没有保持为数据框,而这是不方面的

2. 解决

我们可以利用以下两种方式避免这种情况的发生

name3 <- student[,2,drop = FALSE]
name4 <- student["Name"]
str(name3)
str(name4)
#'data.frame':  3 obs. of  1 variable:
#$ Name: Factor w/ 3 levels "Devin","Edward",..: 1 2 3
#'data.frame':  3 obs. of  1 variable:
#$ Name: Factor w/ 3 levels "Devin","Edward",..: 1 2 3

其中注意双中括号和单双括号的区别

name5 <- student[["Name"]]
str(name5)
#Factor w/ 3 levels "Devin","Edward",..: 1 2 3

双中括号类似于$功能了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 学习目标 演示如何从现有的数据结构中取子集,合并及创建新数据集。 导出数据表和图以供在R环境以外使用。 1.数据框...
    小洁忘了怎么分身阅读 4,667评论 1 10
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,784评论 0 11
  • 夕阳薄薄地撒在弄堂里,暮霭浅浅地挂在老树上,这是我的黄昏景色。曾想把那样的黄昏镌刻在记忆的石碑,让后来的日...
    冰夫阅读 213评论 0 0
  • 本回答以针对商业类工作的学生简历为基础,其它简历或有不同。 本回答纯属个人意见,好简历有千万种。 --------...
    夏目有梨阅读 935评论 0 4
  • 有一种性取向叫做lithromantic,中文名:性单恋。说的是这种人在对某个人产生好感后,当对方对他有了同样感情...
    涵丹尼阅读 2,261评论 2 2

友情链接更多精彩内容