为我在R中的案例改进for循环的更好方法?
概率统计: 数据集包含两列mstr_程序_列表,Loc_cat和600000。Loc_cat列包含缺失和未缺失的单元格。其他栏目没有NA。对于mstr_program_列表中的每个prog,需要查找与该程序相关联的loc cat总数,非缺失行的百分比,并在非缺失行中查找其划分类别的计数 例如:对于未知程序-总行数=3,loc_cat中未缺失的行数为1,因此%为(2/3)*100,划分为两个类别的数量(剩余:全部)(剩余:lim) 下面的代码花费了很多时间。事实上,结果并没有显现出来。有人能帮我改进代码吗。根据我的观点,这个代码的问题是添加向量 经过研究,我知道了向vector添加值,而不是使用append和go with c()为我在R中的案例改进for循环的更好方法?,r,R,概率统计: 数据集包含两列mstr_程序_列表,Loc_cat和600000。Loc_cat列包含缺失和未缺失的单元格。其他栏目没有NA。对于mstr_program_列表中的每个prog,需要查找与该程序相关联的loc cat总数,非缺失行的百分比,并在非缺失行中查找其划分类别的计数 例如:对于未知程序-总行数=3,loc_cat中未缺失的行数为1,因此%为(2/3)*100,划分为两个类别的数量(剩余:全部)(剩余:lim) 下面的代码花费了很多时间。事实上,结果并没有显现出来。有人能帮我改
v您能为您的问题添加一个小示例数据集吗?即使是头部(数据)
也不错。看起来代码可能有很多问题,但如果不知道变量是什么,很难判断。mstr_程序列表是否有NA?此变量中的所有未知数都应分组?mstr\U program\U list没有任何NA。Unknown是该列中的字符串。只有loc_猫不同意这个问题。让它更清晰我会尝试使用*apply重写。我不完全理解您想要得到什么(最好为您添加的数据添加预期结果),但我认为您的程序没有按照您的想法执行。你真的只想要最后的值吗?
> head(data)
L.Name mstr_program_list loc_cat
1 Six J'SGroup Unknown <NA>
2 Bj's- Maine Roasted Tomat Rests: Full
3 Bj's- Maine Unknown Rests: Full
4 Brad's Q Q Unknown Rests: lim
mstr_prog total_count %good(non missing rows) Number of loc_cat
Unknown 3 66.7 2
v <- c(v, 'y') # adding elements into a vector
data <- read.csv("MgData.csv",header=T, na.strings="", colClasses = classes, nrows = 600338,comment.char="") ## import data.
data_NoNull <- na.omit(data)
mpl_unique <- unique(data$mstr_program_list)
mas_Prog_List <- as.character()
loc_Count <- as.numeric()
per_Seg <- as.numeric()
num_Seg <- as.numeric()
for(i in 1:length(mpl_unique)) {
l_t <- length(data$mstr_program_list[data$mstr_program_list == i]) # loc_cat specific to prog
l_g <- length(data_NoNull$mstr_program_list[data_NoNull$mstr_program_list == i]) ## to know filled ones excluding empty
s <- subset(data_NoNull, mstr_program_list==i, select =c(loc_cat))
if((any(i == mas_Prog_List)) == FALSE) {
no_Seg <- nrow(unique(s))
mas_Prog_List <- c(mas_prog_list, i) # Adding values to vector
loc_Count <- c(loc_count, l_t)
perct_Seg <- ((l_g/l_t)*100)
per_Seg <- c(per_Seg, perct_seg)
Num_Seg <- c(Num_Seg, no_seg)
}
}
}
Seg_analysis <- data.frame(mas_Prog_List, loc_Count, per_Seg, num_Seg)