私は異なる種のデータフレームを持っており、それらの存在量がいくつかのパラメータに関連しているかどうかを見たいと思っています。purrr in linear model R:タイプ 'character'の 'envir'引数が無効
私は私が驚いたことに
# Load in the dune data set and tidyverse
library(vegan)
data(dune)
data(dune.env)
library(tidyverse)
# Reshape the species matrix into long form data
duneM <- dune %>% rownames_to_column('Site') %>% gather(Species, Count, -Site)
# Join the species and environmental data
duneE <- dune.env %>% rownames_to_column('Site')
duneJ <- left_join(duneM, duneE, by = 'Site')
# Basic linear model, that compares species counts to moisture data
my_lm <- function(df){
lm(Count ~ Moisture, data = df)
}
# Group the data by species and apply the function to each one
duneJ %>% group_by('Species') %>% map(my_lm)
ような何かを行うことができるはずだと思い、私は次のエラーメッセージを取得しています。 evalの中
エラー(predvars、データ、ENV):
- duneJ%>%GROUP_BY( "種")%>%マップ:タイプ '文字' トレースバックの無効 'ENVIR' 引数(my_lm)
- withVisible(evalの(引用符( `_fseq`(` _lhs`))、ENV、ENV))
- のeval(引用符( `_fseq`(` _lhs`))、ENV、ENV)
- eval( `_fseq`(` _lhs`))、env、env)
- ` _fseq`( `_lhs`)
- freduce(値、` _function_list`)
- withVisible(function_list [K])
- function_list [K]
- マップ(。、my_lm)
- .F( .X [[I]]、...)
- LM(ファイルの2行目
- のeval(MF、parent.frame(時〜水分、データ= DF)#をカウント))
- のeval(MF 、parent.frame())
- stats :: model.fra私
- model.frame.default(式=カウント〜モイスチャー、データ=のDF、drop.unused.levels = TRUE)
- (数式は=〜モイスチャー、データ=のDF、drop.unused.levels = TRUEをカウント) evalの(predvars、データ、ENV)
は明らかに、私はここで何かが欠けています。誰か明確にしてもらえますか?ありがとう。
データフレームが必要です。 'duneJ%>%group_by(種)%>%summarize(lm = list(my_lm(。)))' –
をお試しください。それが本当に実行されている間、私は出力と何をすべきか分からない。私は係数とp値のデータフレームを得るために 'duneJ%>%group_by( 'Species')%>%map(my_lm)%>%broom :: tidy'のようなことを行う予定でした。 – ohnoplus
私はマップのポイントの多くは、データフレームではないオブジェクトを扱うことができたと考えていました。最後に、map_df(broom :: tidy)のようなものでデータフレームを抽出することができました – ohnoplus