作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果data.table
中的列名采用number + character
的形式,例如:4PCS
,5Y
等,那么如何将其在j
中引用为x[i,j]
,以便将其解释为未引用的列名。
我认为这将解决我原来的问题。我想在``data.table''中添加几列,其形式为number + character
。
M <- data.table('4PCS'=1:4,'5Y'=4:1,X5Y=2:5)
> M[,4PCS+5Y]
Error: unexpected symbol in "M[,4PCS"
4PSC
和
5Y
的总和。
data.table
中以无引号的形式引用它们?如果这些列在
data.table
中以
data.frame
的引号“逻辑”引用:
> M[,'5Y',with=FALSE]
5Y
[1,] 4
[2,] 3
[3,] 2
[4,] 1
data.frame
中不起作用,因此添加项不起作用:
> M[,'4PCS'+'5Y',with=FALSE]
Error in "4PCS" + "5Y" : non-numeric argument to binary operator
data.table
功能将允许对列进行操作。我想在新的
data.table
逻辑中找到一个解决方案,因此我可以使用其通过列名引用转换列的功能。
最佳答案
我认为,这是您要寻找的,不确定。 data.table
与data.frame
不同。请先查看quick introduction,然后再查看FAQ(如果需要,还请参阅引用手册)。
require(data.table)
dt <- data.table("4PCS" = 1:3, y=3:1)
# 4PCS y
# 1: 1 3
# 2: 2 2
# 3: 3 1
# access column 4PCS
dt[, "4PCS"]
# returns a data.table
# 4PCS
# 1: 1
# 2: 2
# 3: 3
# to access multiple columns by name
dt[, c("4PCS", "y")]
data.table
而不是矢量,那么可以使用
$
表示法进行访问:
dt$`4PCS` # notice the ` because the variable begins with a number
# [1] 1 2 3
# alternatively, as mnel mentioned under comments:
dt[, `4PCS`]
# [1] 1 2 3
[[.]]
如下访问:
dt[[1]] # 4PCS is the first column here
# [1] 1 2 3
dt[, `4PCS` + y]
# [1] 4 4 4
4CPS
在R中不是有效的变量名(尝试
4CPS <- 1
,您将收到相同的“意外符号”错误)。因此要引用它,我们必须使用反引号(比较
`4CPS` <- 1
)
关于r - 如何在data.table中引用以数字开头的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637132/
我是一名优秀的程序员,十分优秀!