我不知道如何設置這個最簡單的方法。我有一個名爲Test的數據框,列中包含一些NA值。現在我想的值1設置爲滿足下列條件的所有領域:R:爲滿足兩個條件的某些數據設置一個值
- 行數> 60
- 如果在特定領域
到目前爲止,我有一個NA:
Test$MyColumn[is.na(Test$MyColumn)] <- 1
這工作,但我不知道如何設置第二個條件: -/
我不知道如何設置這個最簡單的方法。我有一個名爲Test的數據框,列中包含一些NA值。現在我想的值1設置爲滿足下列條件的所有領域:R:爲滿足兩個條件的某些數據設置一個值
到目前爲止,我有一個NA:
Test$MyColumn[is.na(Test$MyColumn)] <- 1
這工作,但我不知道如何設置第二個條件: -/
如果您在bb
改變這裏的元素1
前兩個條件必須申請一個替代方法:
aa <- 1:10
bb <- c(1,NA,6,4,NA,9,1,NA,2,5)
cc <- c(100,102,104,NA,78,54,99,NA,22,0)
dd <- data.frame(aa,bb,cc)
dd
dd$bb[4:nrow(dd)][is.na(dd$bb[4:nrow(dd)])] <- 1
dd
這是原始數據集:
aa bb cc
1 1 1 100
2 2 NA 102
3 3 6 104
4 4 4 NA
5 5 NA 78
6 6 9 54
7 7 1 99
8 8 NA NA
9 9 2 22
10 10 5 0
這裏是修改後的數據集:
aa bb cc
1 1 1 100
2 2 NA 102
3 3 6 104
4 4 4 NA
5 5 1 78
6 6 9 54
7 7 1 99
8 8 1 NA
9 9 2 22
10 10 5 0
這就改變了行NA
所有列的4-10如果在排bb
4-10的NA
:
aa <- 1:10
bb <- c(1,NA,6,4,NA,9,1,NA,2,5)
cc <- c(100,102,104,NA,78,54,99,NA,22,0)
dd <- data.frame(aa,bb,cc)
dd
dd[4:nrow(dd),1:3][is.na(dd$bb[4:nrow(dd)]),] <- 1
dd
aa bb cc
1 1 1 100
2 2 NA 102
3 3 6 104
4 4 4 NA
5 1 1 1
6 6 9 54
7 7 1 99
8 1 1 1
9 9 2 22
10 10 5 0
這如果在bb
的第4-10行中有NA
,則在所有列的第4-10行中更改NA
,則它會更改bb
中的所有剩餘NA
:
aa <- 1:10
bb <- c(1,NA,6,4,NA,9,1,NA,2,5)
cc <- c(100,102,104,NA,78,54,99,NA,22,0)
dd <- data.frame(aa,bb,cc)
dd
dd[4:nrow(dd),1:3][is.na(dd$bb[4:nrow(dd)]),] <- 1
dd$bb[is.na(dd$bb)] <- 1
dd
aa bb cc
1 1 1 100
2 2 1 102
3 3 6 104
4 4 4 NA
5 1 1 1
6 6 9 54
7 7 1 99
8 1 1 1
9 9 2 22
10 10 5 0
你可以設置ROWNUMBER這樣的:
Test$RowNumber <- 1:nrow(Test)
然後條件是:
Test$MyColumn[is.na(Test$MyColumn) & Test$RowNumber>60] <- 1
你可以得到想要的結果作爲
Test[60:nrow(Test),][is.na(Test[60:nrow(Test),])]<-1
你是第一個條件?你爲什麼要依靠行號?這似乎很脆弱。 – scottkosty
你的意思是說,你只想交換60以上行的NA值?或者你是否想要更改所有以上的第60行和所有NA值? –