簡體   English   中英

如何將計算值添加到R中的現有列

[英]How to add calculated values to existing column in R

我有一個數據框(文件),其中有兩列:

Path length: 0.5; 0.5; NA; 5; NA; 8; NA
Global efficiency: NA; NA; 0.8; 0.2; 0.3; NA; NA

現在,我想通過以下方式將全局效率值轉換為路徑長度值: path length = 1 / global efficiency 我只想在路徑長度值= NA時執行此操作。 然后,我想將計算出的路徑長度添加到現有列“路徑長度”中。 有什么幫助嗎?

我已經做了:

  ifelse(file$P_L_Mean != 'NA')
    {
    file$P_L_Mean <- 1/file$P_Eglob_Mean
    }

但這不會將值添加到現有列中...

謝謝!

我們使用is.na創建邏輯索引並分配

i1 <- is.na(file$P_L_Mean)
file$P_L_Mean[i1] <- 1/file$P_Eglob_Mean[i1]

我們也可以用ifelse做到這ifelse

file$P_L_Mean <- with(file, ifelse(is.na(P_L_Mean), 1/P_Eglob_Mean, P_L_Mean))
X=data.frame(path_length=c(0.5,0.5,NA,5,NA,8),global_eff=c(NA,NA,0.8,0.2,0.3,NA))

fun=Vectorize(function(x,y){if (is.na(x)){return(1/y)}})
X= X %>% mutate(global_eff_2=fun(path_length,global_eff))

暫無
暫無

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

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