簡體   English   中英

如何在數據框中輸入缺少的sd,然后將sd列上的NA強制作為函數自動添加到新數據框中?

[英]How can I input missing sd in a dataframe and then enforce NAs on the column sd automatically as a function into a new data frame?

這是我正在嘗試做的事情:

設置數據框:

df=data.frame(m=runif(500,0,100),n=round(runif(500,1,100),sd=runif(500,1,25))
head(df)
df$sd=as.data.frame(lapply(df[3],function(cc)cc[sample(c(TRUE,NA),prob=c(0.85,0.15),size=length(cc),replace=TRUE)]))

評估數據中的SD是否丟失:

NaS=which(is.na(df),arr.ind=TRUE)[,1]
NaM=noquote(paste0(NaS,sep=","))

從缺少sd的df中獲取平均值,這有點笨拙,因為我需要在此處手動復制並粘貼NaM的值:

xm=df[c(...),1] xm

從缺少sd的df中獲取n個值:

xn=df[c(...),2]
xn

使它成為一個數據框:

Simdf=data.frame(xm,xn)

希望我能正確理解您,但似乎您只希望其中is.na(df$sd) == TRUEmn列? 我只用它的subset

df=data.frame(m=runif(500,0,100),n=round(runif(500,1,100)),sd=runif(500,1,25))
head(df)
df$sd=as.data.frame(lapply(df[3],function(cc)cc[sample(c(TRUE,NA),
                                                       prob=c(0.85,0.15),size=length(cc),
                                                       replace=TRUE)]))


df_NA <- subset(df, is.na(sd))

R> head(df_NA)
         m  n sd
8   0.8887 85 NA
20 86.1660 71 NA
26 46.9202 83 NA
48 84.4475 41 NA
51  4.8426  3 NA
53 61.7181 92 NA

暫無
暫無

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

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