太长不看版

data.table格式在调用列时, 加上逗号, 如果是字符串, 加上with=FALSE

trait = "yield"
dat[,trait,with=F]

使用oats数据集

将其转化为dat的data.table的形式

library(asreml)
data(oats)
str(oats)
library(data.table)
dat = as.data.table(oats)
str(dat)

查看数据结构, 可以看到oats是数据框data.frame, dat是data.table

> library(asreml)
> data(oats)
> str(oats)
'data.frame': 72 obs. of  6 variables:$ Blocks  : Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...$ Nitrogen: Factor w/ 4 levels "0_cwt","0.2_cwt",..: 4 3 2 1 1 2 4 3 1 2 ...$ Subplots: Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ...$ Variety : Factor w/ 3 levels "Golden_rain",..: 2 2 2 2 3 3 3 3 1 1 ...$ Wplots  : Factor w/ 3 levels "1","2","3": 1 1 1 1 2 2 2 2 3 3 ...$ yield   : int  156 118 140 105 111 130 174 157 117 114 ...
> library(data.table)
> dat = as.data.table(oats)
> str(dat)
Classes ‘data.table’ and 'data.frame':    72 obs. of  6 variables:$ Blocks  : Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...$ Nitrogen: Factor w/ 4 levels "0_cwt","0.2_cwt",..: 4 3 2 1 1 2 4 3 1 2 ...$ Subplots: Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ...$ Variety : Factor w/ 3 levels "Golden_rain",..: 2 2 2 2 3 3 3 3 1 1 ...$ Wplots  : Factor w/ 3 levels "1","2","3": 1 1 1 1 2 2 2 2 3 3 ...$ yield   : int  156 118 140 105 111 130 174 157 117 114 ...- attr(*, ".internal.selfref")=<externalptr>

使用data.frame提取列

可以将性状名赋值给一个变量trait, 然后通过trait调取:
注意: data.frame默认的dat[i]提取的是第i列的内容, data.table中的dat[i]默认的是提取第一行的内容

trait = "yield"
oats[trait]
> oats[trait] %>% head()yield
1   156
2   118
3   140
4   105
5   111
6   130

同样的方法 在data.table中报错

trait = "yield"
dat[,trait]

报错如下:

Error in `[.data.table`(dat, , trait) : j (the 2nd argument inside [...]) is a single symbol but column name 'trait' is not found. Perhaps you intended DT[, ..trait]. This difference to data.frame is deliberate and explained in FAQ 1.1.

解决方法

因为data.table默认的是提取行, 那么在提取时前面加上逗号, 可以提取, 但是这里trait是个变量, 如果想要使用, 需要加上参数with=FALSE

trait = "yield"
dat[,trait,with=F]

正确结果:

> dat[,trait,with=F] %>% head()yield
1:   156
2:   118
3:   140
4:   105
5:   111
6:   130

data.table中选择列与data.frame的区别: This difference to data.frame is deliberate and explained in FAQ 1.1.相关推荐

  1. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象

    R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 目录 R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象 #data.t ...

  2. ajax拿table里的th值,Jquery Ajax 异步设置Table中某列的值

    可根据table中某列中的ID去改变某列的值! 只是参考,实际应用中不能这样做的,如果有很多行,频繁访问服务器,服务器是顶不住的! JS: $(document).ready(function () ...

  3. jQuery 在Table中选择input之类的东西注意事项

    jQuery 在Table中选择input之类的东西注意事项: 如果不在td标签中,是不能进行正确选择的: <table id="tblFormId"><tr&g ...

  4. Table中Family和Qualifier的关系与区别(转载)

    Table中Family和Qualifier的关系与区别 就像用MySQL一样,我们要做的是表设计,MySQL中的表,行,列的在HBase已经有所区别了,在HBase中主要是Table和Family和 ...

  5. DataGrid中选择列文本根据绑定数据不同显示为不同颜色的处理办法

    目前在维护一个Web应用,用户提出一些对我来说要求比较高的需求,摸索了一下,终于解决了.和大家分享一下:         问题:一般DataGrid中会有部分选择列,例如:         <a ...

  6. mysql 的条件 if else_使用If else条件在mysql中选择列?

    我有两张桌子,分别是桌子 AccountNo User Name ---------------------------------- 1 U a 2 U b 3 U c 另一个表包含以下结构 Tem ...

  7. table中同一列中合并相同项

    实现效果 实现方法: 1.使用table中提供的合并方法spanMethod spanMethod({row, column, rowIndex, columnIndex}) {if (column. ...

  8. Web前端笔记-element ui中table中某列添加a便签进行跳转

    效果是这样的: 这里的文章标题和查看都可以进行跳转. 其中对应的代码如下: <template style="height: 100%"><el-table:da ...

  9. 【mysql】table中添加列

    前言 mysql 对已有table添加列 操作命令 # 先登录mysql >mysql -uroot -p # 切换数据库 >use mydb; # 添加2列 >alter tabl ...

最新文章

  1. python程序员的工作内容_每个Python程序员都要知道的日志实践
  2. 把PPT做漂亮点真的有用,研究证明图表美观增加可信度,作者:还会影响论文引用和通过率...
  3. Spring Boot 之发送邮件
  4. Linux和Windows路由配置
  5. 条形图坐标轴_手把手教你用Excel绘图 | 双轴簇状条形图
  6. conda - 虚拟环境,常用指令
  7. Codeforces Beta Round #5 B. Center Alignment 模拟题
  8. linux-shell命令之chown(change owner)【更改拥有者】
  9. JAVA面试常考系列十一
  10. impdp导入mysql_Oracle数据库的impdp导入操作以及dba_directories使用方法
  11. 前端学习(80):按类型划分标签(inline)
  12. fcpx瘦身插件_FCPX减小内存,瘦身小技巧 - Final Cut - 沃CG - 一个更有价值的艺术设计学习平台 - ae教程 c4d教程 - Powered By EduSoho...
  13. python小结教学_Python Str内部功能-个人课堂笔记,课后总结
  14. HTML表格修改字段,HTML表格 – 更改列中单个单元格的宽度
  15. React 入门与实战-课时7 虚拟DOM的本质和目的
  16. 11.05面向对象 封装
  17. pm2和pm2-logrotate 日志管理 初探
  18. 微信跳转浏览器提示_微信浏览器中打开提示的2种实现方式
  19. 【渝粤题库】陕西师范大学201611《中国古代文学(四)》作业
  20. leetcode-初级算法-数组-有效的数独(JavaScript)

热门文章

  1. Pytorch学习(三)Linear层
  2. Android常用设计模式
  3. BVH树simple
  4. 2020ios退款新技术_沙特电商年增长率超32%,新沙特电商法会带来哪些影响?
  5. windows 获取毫秒级时间戳
  6. android studio freeline,Android Studio配置freeline遇到的问题
  7. termux怎么生成木马_termux不用root将里面的文件导出,同时也可以导入!
  8. PSD/PS: Matlab估计PSD的方法
  9. 现在学习游戏建模的前景如何?好找工作吗?
  10. Deprecated(since=“9“) newInstance()方法