# 获取所有对象名称 all_objects <- ls() # 过滤出dataframe对象名称 dataframe_names <- all_objects[sapply(all_objects, function(x) class(get(x))) == "data.frame"] 接下来,使用for循环遍历dataframe的名称列表,并对每个dataframe进行相应的操作。 代码语言:txt 复制 # 遍历dataframe名称列表 for (nam...
# 创建一个空的dataframe df <- data.frame() # 定义需要创建的列的值 values <- c(1, 2, 3, 4, 5) # 使用for循环遍历values,并将其添加到dataframe中 for (value in values) { new_column <- value * 2 # 创建新的列,这里以乘以2为例 df <- cbind(df, new_column) # 将新的列添加到da...
这里要介绍的函数是sapply(input, function)。运用该函数,对Data中的每个列向量,使用刚才定义的Summary(),得到结果如下,通过一行代码就完成了for-loop。这里使用lapply(input, function)也能返回同样的结果,只是输出结果从数据框,变成了list。即两个函数都是输入一个list,输出分别是data frame 和 list。 x <- rno...
output <- character (nrow(df)) condition <- (df col1+dfcol2 + df col3+dfcol4) > 4 # condition check outside the loop system.time({ for (i in 1:nrow(df)) { if (condition[i]) { output[i] <- "greater_than_4" } else { output[i] <- "lesser_than_4" } } df$output ...
condition <- (df$col1 + df$col2 + df$col3 + df$col4) > 4 # condition check outside the loop system.time({ for (i in 1:nrow(df)) { if (condition[i]) { output[i] <- "greater_than_4" } else { output[i] <- "lesser_than_4" ...
//Source for MyFunc.cpp#include usingnamespaceRcpp;//[[Rcpp::export]]CharacterVectormyFunc(DataFramex){NumericVectorcol1=as(x["col1"]);NumericVectorcol2=as(x["col2"]);NumericVectorcol3=as(x["col3"]);NumericVectorcol4=as(x["col4"]);intn=col1.size();CharacterVectorout(n);for(...
for (i in 1:8){ # loop through all eight classes cls = samples[samples$class == i,] smpl <- floor(0.70 * nrow(cls)) tt <- sample(seq_len(nrow(cls)), size = smpl) trainx[[i]] <- cls[tt,] evalx[[i]] <- cls[-tt,] ...
for (i in (1:nrow(df))[condition]) {# run loop only for true conditions if (condition[i]) { output[i] <- "greater_than_4" } } df$output }) 4.尽可能地使用 ifelse() 语句 利用ifelse() 语句可以使你的代码更加简便。 ifelse() 的句法格式类似于 if() 函数,但其运算速度却有了巨大...
6.使用apply系列函数代替for循环。 使用apply()函数计算相同的逻辑并将其与矢量化的for循环进行比较。结果再次以大小的顺序更快但比ifelse()在循环外进行条件检查的版本慢。这可能非常有用,但在处理复杂逻辑时您需要有点狡猾。 # apply familysystem.time({ myfunc <-function(x) {if((x['col1'] + x['col...
假如定义了向量的众数函数为modefun,可以用sapply求每组的众数:sapply(x_list, FUN = modefun)不过...