簡體   English   中英

R - 使用條件從 lm object 的因子中提取系數

[英]R - Extract coefficients from a factor of lm object using conditions

我已經為 lm 安裝了以下代碼:

Eq1_females = <- lm(earnings ~ event_time + factor(age) + factor(year) - 1, data=females)

現在,我想根據因子系數計算一個預測值,但這個預測值取決於數據中的某些條件。 因此,我創建了一個系數列表,如果年齡 = k 和年份 = y,我現在想提取因子系數,但它一直返回 0 或 NA。 但是,如果我輸入一個數字(例如 34)而不是 k,它確實給出了正確的值。 我嘗試了兩種不同的代碼:

estimates <- coef(Eq1_females)
k = females$age[1]
Eq1_females$coefficients["factor(age)k"]

estimates <- coef(Eq1_females)
k = females$age[1]
beta_age = estimates[grep("^factor\\(age\\)k", names(estimates))]

(請注意,最后,我想循環遍歷不同的女性 $age 行)

起作用的是計算

beta_age = estimates[grep("^factor\\(age\\)34", names(estimates))]

誰能告訴我是否有辦法讓代碼在 beta_age 公式中與 k 一起使用?

提前非常感謝!

回答

使用paste0將正確的數字粘貼到正則表達式模式:

beta = estimates[grep(paste0("^factor\\(Petal.Width\\)", k), names(estimates))]

這將返回:

factor(Petal.Width)0.2 
              3.764947

基本原理

"^factor\\(age\\)k"中,它將k視為文字k 但是,您指的是變量k 通過使用paste(..., sep = "")paste0(...)您可以簡單地將k粘貼到基本模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM