在R中“:=”符号是什么意思?

在R中“:=”符号是什么意思?

问题描述:

我使用的符号代码为:在R中“:=”符号是什么意思?

test[,income_level := ifelse(test$income_level=="-50000",0,1)] 

请帮助我了解符号“:=

+0

这意味着你创建新列''income_level值为'ifelse(测试$ income_level == “ - 50000”,0,1)',或者你可以认为这样 'test [,'income_level'] = ifelse(test $ income_level ==“ - 50000”,0,1)' – Wen

+0

看看这个问题,了解':='操作符在基本R中被解析以及如何重新定义和使用一些包,如'data.table'和'ggvis':https://*.com/questions/26269423/r-why-is-allowed-as-an-infix-operator –

+1

它是不再(不再是)基R的一部分。它被少数软件包使用,而不是巧妙地[data.table](https://github.com/Rdatatable/data.table/wiki)就像你提供的用法一样。 – alistaire

十分肯定你引用代码表示data.table对象的修改,从而可以只有我通过加载一个额外的软件包(也称为data.table)来制作R。更具体地说,代码将新列添加到testdata.table

A data.tabledata.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