假設在著名iris
數據集選擇性地移除列值,我已確定,當Sepal.Length> 5.0,還有在我的測定裝置的誤差。
在這個人爲的例子中,我想保留Sepal.Length列的原始值,但如果該行的Sepal.Length> 5.0,則將其餘列更改爲NA
。
作爲一個例子,這樣的:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
會變成這樣:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 NA NA NA NA
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 NA 1.7 NA NA
我可以通過一定的量化手動完成。沿線的東西:
iris$Sepal.Width <- ifelse(iris$Sepal.Length > 5.0, NA, iris$Sepal.Width)
然而,在這種方法中,我需要手動指定每一列。
問題
我強烈懷疑有一個聰明的方式通過任何purrr
或dplyr
來解決這個。儘管如此,我已經讓自己失望了一個/modify_at
兔子洞。對優雅的任何建議將不勝感激。
謝謝!
我喜歡這個配方。它乾淨可讀 - 感謝稱重! – amormachine