- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 4798 个
- 通用积分
- 359.7619
- 学术水平
- 60 点
- 热心指数
- 70 点
- 信用等级
- 42 点
- 经验
- 9952 点
- 帖子
- 242
- 精华
- 0
- 在线时间
- 985 小时
- 注册时间
- 2016-11-28
- 最后登录
- 2024-4-1
|
- library(openxlsx)
- library(stringr)
- mydata <- read.xlsx("example.xlsx")
- expl <- mydata$codeExpl
- # 将expl每个元素转成一个带有名字的向量
- expl_list <- list()
- for (i in seq_along(expl)) {
- expl_vector <- unlist(str_split(expl[i], "_x000D_\n"))[-1] # 将每行进行分词处理
- exp_vectorname <- gsub(":.+", "", expl_vector)
- expl_vector <- gsub(".+:", "", expl_vector)
- names(expl_vector) <- exp_vectorname
- expl_list[[i]] <- expl_vector[sort(names(expl_vector))] # 排序,尽量让同意变量名位置相同
- }
- # 找出每个变量名各种叫法
- names.list <- lapply(expl_list, names)
- # 创建一个提取取某列表第x元素的函数
- myfun <- function(mylist) {
- function(x) {
- len = length(mylist)
- list_sub = vector(length = len)
- for (i in 1:len){
- list_sub[i] = mylist[[i]][x]
- }
- return(unique(list_sub))
- }
- }
- mylist.fun <- myfun(names.list)
- names_call <- lapply(1:length(names.list[[1]]), function(x) mylist.fun(x))
- # 找出叫法>1的变量名
- Filter(function(x) length(x)>1, names_call)
- # 接下来可以通过更改exp_list里的名字,然后将列表转为数据框(略)
- # 注意sort可能不一定能将正确将同意的名字放在相同的位置,这里面需要人类的思考。
复制代码
|
-
总评分: 论坛币 + 10
查看全部评分
|