如何将R语言for循环输出赋值给dataframe/matrix/list并导出Excel
解决方案
1. 统计结果存入DataFrame并导出Excel
原代码里的print(cat())是直接将内容打印到控制台,无法直接捕获赋值,我们可以调整逻辑直接生成统计字段,操作如下:
提前加载依赖包
# 首次使用需先安装 # install.packages("stringr") # install.packages("writexl") library(stringr) library(writexl)
构造示例数据集(已有new数据集可跳过该步骤)
new <- data.frame( `Sl no.` = 1:3, Description = c("Find your id here", "people talk about you", "it's your turn"), check.names = FALSE )
方法1:向量化操作(简洁高效,推荐)
直接在原数据框新增统计列即可:
# 新增your出现次数字段 new$your_count <- str_count(new$Description, "your") # 导出到Excel,存储路径可自定义 write_xlsx(new, path = "your词统计结果.xlsx")
方法2:用for循环实现(匹配你原有代码逻辑)
# 初始化空向量存储统计结果 your_count <- c() for (i in 1:nrow(new)) { your_count[i] <- str_count(new$Description[i], "your") } # 将统计结果赋值到数据框 new$your_count <- your_count # 导出Excel write_xlsx(new, path = "your词统计结果.xlsx")
如果需要保留你原输出里"count of xxx 次数"的文本格式,可额外生成对应列:
new$count_text <- paste0("count of ", new$Description, " ", new$your_count)
2. 结果赋值给matrix
可以直接转换,示例如下:
# 仅转换描述和统计结果为矩阵 result_matrix <- as.matrix(new[, c("Description", "your_count")]) # 全部字段转换为矩阵 full_matrix <- as.matrix(new)
内容的提问来源于stack exchange,提问作者Fahim Ahamad V
相关产品推荐
相关产品推荐

