大部分的時候,為了方便我們會在自己用的data.frame中取數字運算,例如把iris要算的Sepal.Length第一項道第十項乘以二,大部分的人都是直接取值[1:10,1],但別人閱讀起來就相對困難。
iris_test = iris
iris_test[1:10,1]
iris_test[1:10,1] * 2
希望至少能寫成這樣
iris_test$Sepal.Length[1:10]
但通常有一種狀況大家會選擇用數字代替,就是寫迴圈的時候,這邊想
如果是迴圈情形的時候
我今天想要把iris這個資料集的第一行第三行第四行都乘以2的時候,我以前也會寫成
for(i in c(1,3:4))
iris_test[,i] = iris_test[,i] * 2
這邊推薦一個方法,用select ,把你要運算的列名稱列舉出來
select(iris_test,Sepal.Length,Petal.Length,Petal.Width) %>% colnames()
這樣的話你再跑for迴圈,把c(1,3:4)取代掉,非常重要的一點,就是要把[,i]改成[[i]]這樣才能吃列名稱。
for(i in select(iris_test,Sepal.Length,Petal.Length,Petal.Width) %>% colnames())
iris_test[[i]] = iris_test[[i]] * 2