【发布时间】:2020-06-16 12:19:18
【问题描述】:
r$> iris %>% .[which(as.numeric(rownames(.))%%3!=0),] %>% rownames
[1] "1" "2" "4" "5" "7" "8" "10" "11" "13" "14" "16" "17" "19" "20" "22" "23" "25" "26" "28" "29" "31" "32" "34" "35" "37" "38" "40" "41" "43" "44" "46"
[32] "47" "49" "50" "52" "53" "55" "56" "58" "59" "61" "62" "64" "65" "67" "68" "70" "71" "73" "74" "76" "77" "79" "80" "82" "83" "85" "86" "88" "89" "91" "92"
[63] "94" "95" "97" "98" "100" "101" "103" "104" "106" "107" "109" "110" "112" "113" "115" "116" "118" "119" "121" "122" "124" "125" "127" "128" "130" "131" "133" "134" "136" "137" "139"
[94] "140" "142" "143" "145" "146" "148" "149"
r$> iris %>% .[which(as.numeric(rownames(.))%%3!=0),] %>% mutate(Sepal.Length=Sepal.Length+1) %>% rownames
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31"
[32] "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62"
[63] "63" "64" "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" "91" "92" "93"
[94] "94" "95" "96" "97" "98" "99" "100"
我喜欢mutate(),因为它很容易在管道中使用。如上例所示,您可以发现 mutate 后行名发生了变化。
我需要改变列但保持行名不变,如何通过 R 管道进行?
【问题讨论】:
-
这与管道无关。
mutate删除行名。 -
@KonradRudolph,我需要管道格式的解决方案。
-
@kittygirl 是的,但如前所述,这对于问题或潜在答案都不重要,因为管道操作员的存在与否对此没有影响。除此之外,如果您想保留行名,则不能使用
mutate等。但我强烈建议您坚持使用mutate,并习惯于没有行名。我也花了一些时间,但当我习惯将行名视为另一列后,我意识到不使用行名绝对没有缺点,而且有很多优点。
标签: r