2017-08-12 283 views
-4

我使用的符號代碼爲:在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://stackoverflow.com/questions/26269423/r-why-is-allowed-as-an-infix-operator –

+1

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

回答

0

十分肯定你引用代碼表示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