私はRの初心者です。あなたの中にはこれが簡単すぎるのであればごめんなさい。リストがあり、列の1つ(「値」)をドル形式に変換する必要があります。私はどんな助けにも感謝しています。ドル表示形式を再帰的に適用してドル形式を表示する
私はlapply()
を成功させました。
ここに私のデータです:
dput(Input_File)
structure(list(Zone = c("East", "East", "East", "East", "East",
"East", "East", "West", "West", "West", "West", "West", "West",
"West"), Fiscal.Year = c(2016, 2016, 2016, 2016, 2016, 2016,
2017, 2016, 2016, 2016, 2017, 2017, 2018, 2018), Transaction.ID = c(132,
133, 134, 135, 136, 137, 171, 171, 172, 173, 175, 176, 177, 178
), L.Rev = c(30000, 20000, 23400, 23423, 2344, 452343, 23445,
234, 45234, 23, 234345, 43534, 23421, 345345), L.Qty = c(234253,
2342, 12334, 234253, 2342, 12334, 234253, 2342, 12334, 234234,
223423, 234234, 43534, 432423), A.Rev = c(17253, 11117, 19751,
10457, 11820, 14607, 14512, 16676, 12189, 11714, 12243, 18506,
10500, 17793), A.Qty = c(19245, 17584, 18267, 19371, 19867, 13359,
16932, 11541, 13434, 14409, 13908, 11042, 14632, 17332), I.Rev = c(17775,
14452, 18459, 19481, 18463, 16566, 11749, 19208, 12244, 15344,
15561, 16261, 11977, 11643), I.Qty = c(16441, 10409, 14249, 11737,
11439, 11714, 18159, 18523, 17653, 14573, 16571, 13127, 12152,
12692)), .Names = c("Zone", "Fiscal.Year", "Transaction.ID",
"L.Rev", "L.Qty", "A.Rev", "A.Qty", "I.Rev", "I.Qty"), row.names = c(NA,
14L), class = "data.frame")
は、ここに私のコードです:
Output<-Input_File %>%
gather(Rev_Qty,Value, L.Rev:I.Qty) %>%
separate(Rev_Qty, into=c("L.A","Rev.Qty")) %>%
split(.,list(.$Zone,.$Rev.Qty,.$Fiscal.Year),drop = TRUE) %>%
lapply(.,function(x) {scales::dollar_format()(.[6])})
私は次のエラーを取得:
はError in UseMethod("round_any") :
no applicable method for 'round_any' applied to an object of class "list"
予想される出力: 私は知りませんがどのように私はbecaをしたい出力を持つリストを作成する私は再帰的に)(dollar_formatを適用する方法を知っているが、ここで私が言うことができるものですしていない使用します。それぞれの欄「バリュー」で
Output<-Input_File %>%
gather(Rev_Qty,Value, L.Rev:I.Qty) %>%
separate(Rev_Qty, into=c("L.A","Rev.Qty")) %>%
split(.,list(.$Zone,.$Rev.Qty,.$Fiscal.Year),drop = TRUE)
番号:それは、次のコードを実行した後、このようなことでしょうリストOutput
の10個のデータフレームは、$フォーマットで表されます。出力は、10データフレームのリストでなければなりません。例えば、ここではリスト内の最初のデータフレームの第6列(値)は次のようになりますどのようにお見せするためのコードです:Output
リストの各データフレームで
a<-Output[[1]]$Value
scales::dollar_format()(a)
は、いつものように他の列が存在することになります。私はどんな助けにも感謝しています。ご不明な点がございましたらお知らせください。私たちは、匿名関数呼び出しを使用しているかどうかを確認してください
(
purrr
から)@watchtowerで匿名コールなしx[[6]]
代わり.[6]
またはを使用編集 – akrun
パーフェクト。本当にありがとう。 'lapply'の2行目に" x "の使用を説明してください。私はあなたの考えを感謝します。 – watchtower
@watchtower匿名機能を使用することで、 'x'はリスト内のdata.frameです。 x [[6]]は6番目の列です。代入後にxの値を返す必要があります – akrun