在R中“:=”符号是什么意思?
问题描述:
我使用的符号代码为:在R中“:=”符号是什么意思?
test[,income_level := ifelse(test$income_level=="-50000",0,1)]
请帮助我了解符号“:=”
答
十分肯定你引用代码表示data.table
对象的修改,从而可以只有我通过加载一个额外的软件包(也称为data.table
)来制作R。更具体地说,代码将新列添加到test
data.table
。
A data.table
是data.frame
,但允许不同的语法并且可以提供速度优势。
例:
# Load the data.table package
library(data.table) # First install.packages("data.table")
# Example data data
n <- 8
set.seed(1)
test <- data.table(id = 1:n, income = rnorm(n = n, mean = 1000, sd = 150))
test
id income
1: 1 906.0319
2: 2 1027.5465
3: 3 874.6557
4: 4 1239.2921
5: 5 1049.4262
6: 6 876.9297
7: 7 1073.1144
8: 8 1110.7487
# Create a new column
test[, income_high := ifelse(test$income > 1000, 1, 0)]
test
id income income_high
1: 1 906.0319 0
2: 2 1027.5465 1
3: 3 874.6557 0
4: 4 1239.2921 1
5: 5 1049.4262 1
6: 6 876.9297 0
7: 7 1073.1144 1
8: 8 1110.7487 1
+0
我相信符号:=这表示在本对象中新对象列的启动和分配。 – Abhishek
这意味着你创建新列''income_level值为'ifelse(测试$ income_level == “ - 50000”,0,1)',或者你可以认为这样 'test [,'income_level'] = ifelse(test $ income_level ==“ - 50000”,0,1)' – Wen
看看这个问题,了解':='操作符在基本R中被解析以及如何重新定义和使用一些包,如'data.table'和'ggvis':https://stackoverflow.com/questions/26269423/r-why-is-allowed-as-an-infix-operator –
它是不再(不再是)基R的一部分。它被少数软件包使用,而不是巧妙地[data.table](https://github.com/Rdatatable/data.table/wiki)就像你提供的用法一样。 – alistaire