Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从data.frames中提取列的不同方法

从data.frames中提取列的不同方法
EN

Stack Overflow用户
提问于 2013-11-07 09:26:06
回答 2查看 274关注 0票数 0

我见过人们使用几种不同的方法从R中的data.frame中提取单个列:

代码语言:javascript
运行
AI代码解释
复制
df[,1]
df$colname

以及:

代码语言:javascript
运行
AI代码解释
复制
df[[1]]

我最近倾向于使用后者,但我只是认为它们可能在做不同的事情。它们之间有什么区别,为什么其中一个会选择一个而另一个呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-07 09:36:24

"[[“版本不允许选择多个元素(尽管该单个元素可能是长度大于1的原子向量或任意复杂性的列表),而”,j“版本将允许返回多个项。如果提供长度大于2的向量,"[[“表单将尝试从递归应用"[[”)中提取元素,首先是列结果,然后是该向量中的项。(...since一个“元素”可能是一个多值向量。)这有点像数组提取。

代码语言:javascript
运行
AI代码解释
复制
test <- data.frame(a=1:5, b=letters[1:5], c=setNames(1:5, letters[1:5]) )
# also would give same results for data.frame
test[[3]]
#1 2 3 4 5 
test[[c(1,3)]]
#[1] 3
# In this case the same as:
test[3,1]
#[1] 3

"[[“版本(如帮助页所指出的)将从向量中删除名称,但这与此问题有关,因为data.frames不允许保留名称。

最重要的区别是"[[“和"$”之间的区别,因为“[”允许您使用计算索引。

另一个主要区别是obj[1]obj[[1]]返回的内容之间的区别。第一个返回一个列表,第二个返回一个向量(至少当obj是一个列表时是这样)。

票数 3
EN

Stack Overflow用户

发布于 2013-11-07 09:58:44

看起来像@DWin和@B.W先生介绍了使用[[[从数据框架中提取列的最常见的方法。

作为[[[方法的替代,您还可以使用基函数subset从数据框架中提取列。

例如,subset(mtcars, select=mpg)将从mtcars数据集中提取名为mpg的列。或者,如果需要多个列,则可以包括列名向量(如subset(mtcars, select=c(mpg, cyl)) )。注意,在使用subset函数时不需要引用列名。

您还可以通过它们的索引以相同的方式获取这些列:subset(mtcars, select=1)选择数据帧中的第一列,并且与subset(mtcars, select=mpg)相同。

虽然在简单地选择列时可能不使用这一点,但是subset函数可以导致更容易理解和冗长的代码,并且在提取一些感兴趣的行(例如subset(mtcars, subset=hp<100, select=c(mpg, cyl)) )时也很有用。您也可以使用[来完成这一任务,但是它没有那么优雅,例如mtcars[mtcars$hp<100, c("mpg", "cyl")]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19842555

复制
相关文章
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7.2K0
Element Table 动态生成列并且不同的列显示不同的样式
我们在使用表格控件时,经常需要动态生成表格的列,并且某些列要求特殊的样式(如右对齐)
tianyawhl
2020/02/25
5.3K0
从FastJson库的不同版本源码中对比学习绕过方法
更新主要在com.alibaba.fastjson.parser.ParserConfig中。
FB客服
2023/02/10
8110
从FastJson库的不同版本源码中对比学习绕过方法
盘点csv文件中工作经验列工作年限数字正则提取的四个方法
前几天在Python黄金交流群有个叫【安啦!】的粉丝问了一个Python正则表达式提取数字的问题,这里拿出来给大家分享下,一起学习下。
Python进阶者
2022/06/05
1.6K0
盘点csv文件中工作经验列工作年限数字正则提取的四个方法
不同列不同行的数据如何进行转置?
案例模拟文件下载 http://gofile.me/4KHV7/SUo5ywXxC
逍遥之
2020/03/24
2.9K0
不同列不同行的数据如何进行转置?
golang实现动态调用不同struct中不同的方法
在我们的业务中,尤其涉及到后台业务,在我们不用考虑性能的情况下,我们写后台框架的时候,可能会遇到这样的一些情况,如何通过某些struct名和方法名传递进来执行不同的逻辑。这个时候我想的是go的反射是最好的实现这种功能,当然在go里面也可以通过定义配置来实现进入动态进入不同的struct名和方法名,或者其他方式(如果你有更好的方式,可以互相交流)。
公众号-利志分享
2022/04/25
1.7K0
VBA技巧:使用数组复制不同的列
假设我们只想复制工作表中指定列的数据,例如第1、2、5列的数据,有多种实现方法,这里介绍使用数组的VBA代码实现。
fanjy
2022/11/16
2.9K0
从ceph对象中提取RBD中的指定文件
之前有个想法,是不是有办法找到rbd中的文件与对象的关系,想了很久但是一直觉得文件系统比较复杂,在fs 层的东西对ceph来说是透明的,并且对象大小是4M,而文件很小,可能在fs层进行了合并,应该很难找到对应关系,最近看到小胖有提出这个问题,那么就再次尝试了,现在就是把这个实现方法记录下来 这个提取的作用个人觉得最大的好处就是一个rbd设备,在文件系统层被破坏以后,还能够从rbd提取出文件,我们知道很多情况下设备的文件系统一旦破坏,无法挂载,数据也就无法读取,而如果能从rbd中提取出文件,这就是保证了即使文件系统损坏的情况下,数据至少不丢失
用户2772802
2018/08/06
4.9K0
如何从内存提取LastPass中的账号密码
简介 首先必须要说,这并不是LastPass的exp或者漏洞,这仅仅是通过取证方法提取仍旧保留在内存中数据的方法。之前我阅读《内存取证的艺术》(The Art of Memory Forensics)时,其中有一章节就有讨论从浏览器提取密码的方法。当你使用标准的用户名/密码方式登录一个网页,通常会发送一个包含了你的用户名及密码的post请求,这些都是以明文方式发送(这里不过多讨论SSL,在SSL内部也是明文发送的)。 本文描述如何找到这些post请求并提取信息,当然如果你捕获到浏览器登录,这些方法就很实用。
FB客服
2018/02/09
5.8K0
如何从内存提取LastPass中的账号密码
python:如何从 URL 中快速提取域名?
有时候,我们要从一段很长的 URL 里面提取出域名。例如从https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要获取的是kingname.info。
王图思睿
2021/06/16
9.2K0
设计模式之工厂模式---对象的实例化部分提取出来---三种不同的提取方法
披萨族的设计: 抽象Pizza类,有四个方法:prepare()、bake(),cut(),box()
用户9854323
2022/06/25
3120
Excel中两列(表)数据对比的常用方法
Excel中两列数据的差异对比,方法非常多,比如简单的直接用等式处理,到使用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)实现各种复杂的数据整理后再进行对比,可以根据实际需要选择使用。
大海Power
2021/08/30
17K0
细说Python中的函数不同使用方法
 从程序中我们可以看到其实一个函数是可以有多个返回值的,只要有足够的变量去存储即可
Gorit
2021/12/09
1.2K0
细说Python中的函数不同使用方法
如何从 Debian 系统中的 DEB 包中提取文件?
DEB 包是 Debian 系统中常见的软件包格式,用于安装和管理软件。有时候,您可能需要从 DEB 包中提取特定的文件,以便查看其内容、修改或进行其他操作。本文将详细介绍如何从 Debian 系统中的 DEB 包中提取文件,并提供相应的示例。
网络技术联盟站
2023/06/08
3.6K0
如何从 Debian 系统中的 DEB 包中提取文件?
在Pandas中更改列的数据类型【方法总结】
有什么方法可以将列转换为适当的类型?例如,上面的例子,如何将列2和3转为浮点数?有没有办法将数据转换为DataFrame格式时指定类型?或者是创建DataFrame,然后通过某种方法更改每列的类型?理想情况下,希望以动态的方式做到这一点,因为可以有数百个列,明确指定哪些列是哪种类型太麻烦。可以假定每列都包含相同类型的值。
kirin
2021/04/19
20.6K0
在Pandas中更改列的数据类型【方法总结】
Linux下,通过cut命令提取对应的列内容【Linux】
-d ' ' , -d参数表示用什么分隔,这里表示用空格分隔(记住这里-d只支持单个字符分隔,也就是-d 'a'可以,-d 'ab'不可以)
sinnoo
2020/11/13
5K0
Linux下,通过cut命令提取对应的列内容【Linux】
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4.1K0
点击加载更多

相似问题

R:从tibble中的data.frames列表中提取列

448

用不同列重新绑定data.frames的有效方法

45

R data.frames中常量列的提取

22

从R中的data.frames列表中提取?

14

如何比较R中不同data.frames中的两列

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文