2
のdplyr :: recodeの名前付き置換えに拡張する私は、同じデータ変換をしばしばやっているだけで、名前と列数の違いがあります。例えば、私の実際のデータで...を使用して関数を書く...そして、R
library(tidyverse)
test.data <- tribble(
~id.num, ~site, ~value1, ~value2, ~value3,
"10-01", "log", 1.5, 2.5, 3.5,
"10-02", "branch", 0.7, 2, 3.24,
"10-03", "branch", 3.2, 2.3, 7.7
)
test.data <-
gather(
test.data,
key = "test.code",
value = "values",
"value1",
"value2",
"value3"
) %>%
mutate(
test.code.order = recode(
test.code,
"value1" = 1,
"value2" = 2,
"value3" = 3
)
) %>%
arrange(id.num, test.code.order)
は、一般的に代わり3の収集されて16-30の列があります現在、私はのmutateの名前が付いたペアを作成するためにやって終わる何
c(
"value1",
"value2",
"value3"
) -> columns
cat(paste0('"', columns, '" = ', 1:length(columns)), sep = ",\n")
とコピーとあります出力をコードに貼り付けます。
しかし、私は何をできるようにしたいことは
test.data <- wide.to.long(test.data, "value1", "value2", "value3")
は私に上記gather
、mutate
、arrange
パイプと同じ結果を与えるような関数を作成しています。私は
wide.to.long <- function(df, key = "test.code", value = "values", id = "id.num", ...) {
test.order.numbers <- missing.code.here
gather(df, key, value, ...) %>%
mutate(test.code.order = recode(key, test.order.numbers)) %>%
arrange(id, test.code.order)
}
もちろんcat
の
"value1" = 1
私はそれがこのような何かを見てね想像
に"value1"
から拡大した文字列を取得するに取り掛かるするかどうかはわかりませんし、任意のpaste
のバージョン私はエラーを与える試しました:"Argument 2 must be named, not unnamed"
。私は何が欠けていますか?
'' id.num'の代わりに '' id''を使用してください。 –
@CTHall最後に修正されました –