2015-09-29 28 views

回答

1

您可以使用簡單的邏輯來指定NA,如下面的非常簡單的示例。

column <- c(1,2,1,3,7,7,1,2,9) 
column[column %in% c(7,9)] <- NA 

> column 
[1] 1 2 1 3 NA NA 1 2 NA 

基本上,您可以使用$運算符操作數據框的任何列。這將該列視爲一個向量。在向量上使用邏輯運算符會返回TRUE或FALSE向量的向量,然後可以使用該向量來選擇向量的元素以更改爲NA。

我會告誡你可能並不總是想這樣做。使用NA代替R中的值可能會產生惱人的副作用,因爲針對NA的任何操作通常會返回NA。

編輯添加:根據Gregor,我應該提及一個數據框允許您使用$運算符從中選擇單列。例如,在數據框df.example中,如果列是A,B和C,則df.example$A將提取列A作爲向量。相反,[算子不創建矢量子集,並且用於選擇數據幀的多列作爲較小的數據幀。例如,根據我們的示例數據框,您可以使用df.example[c("A","B")]選擇列A和B作爲不同的數據幀。如需更多指導,試圖R.

運行 help('[')
+0

公平點。我不幸現在在手機上,所以更新可能需要時間。 – TARehman

+0

@Gregor我已經擴大了我的答案了一下。 – TARehman

0

您還可以使用replace()功能來做到這一點:

df <- data.frame(value = c(1, 3, 7, 3, 9, 9, 7, 2)) 
df$value <- replace(df$value, which(df$value==7 | df$value==9), NA) 

結果:

> df 
    value 
1  1 
2  3 
3 NA 
4  3 
5 NA 
6 NA 
7 NA 
8  2 

這看起來繁瑣,但我發現在which一塊變得更加混亂的情況下方便。然後你在另一條線上做這個部分,並將這個部分指向你在那裏創建的對象。

相關問題