我正在尝试合并所有具有不同名称但相同变量标签的列(从SPSS文件导入)。我试图解决此问题的方法是运行一些检查以确保列既不是NA
也不是相同,然后将j
粘贴到i
并删除j
。但是,这似乎在我的数据框中没有任何改变。我在这里做错了什么?
note-- mergedSet是从set1和set2绑定在一起的行,每个行都包含标签。
for(i in colnames(set1)) {
for(j in colnames(set2)){
if(!is.na(attributes(set1)$variable.labels[i]) &&
!is.na(attributes(set2)$variable.labels[j])) {
if(attributes(set1)$variable.labels[i] ==
attributes(set2)$variable.labels[j]) {
if(i != j) {
mergedSet <- within(mergedSet, i <- paste(i,j))
mergedSet <- within(mergedSet, rm(j))
}
}
}
}
}
答案 0 :(得分:0)
如果我正确理解您的问题,此代码应根据具有匹配的variable.labels和不匹配的列名称的列合并列。
mergedSet <- data.frame(c(1,3,5),c("a","b","c"))
mergedSet <- data.frame(mergedSet,c("s","","h"))
attributes(mergedSet)$variable.labels["gas"] <- "three"
attributes(mergedSet)$variable.labels["xhs"] <- "three"
attributes(mergedSet)$variable.labels["hhh"] <- "notSame"
names(mergedSet) <- c("gas","hhh","xhs")
set1 <- data.frame(c(2),c(4))
names(set1) <- c("gas","factpr")
attributes(set1)$variable.labels["gas"] <- "three"
attributes(set1)$variable.labels["factpr"] <- "nah"
set2 <- data.frame(c("asd"),c("pqr"))
names(set2) <- c("non","hhh")
attributes(set2)$variable.labels["non"] <- "something"
attributes(set2)$variable.labels["hhh"] <- "three"
for(i in colnames(set1)) {
for(j in colnames(set2)){
if(!is.na(attributes(set1)$variable.labels[i]) &&
!is.na(attributes(set2)$variable.labels[j])) {
if(attributes(set1)$variable.labels[i] ==
attributes(set2)$variable.labels[j]) {
if(i != j) {
mergedSet[, i] <- paste(mergedSet[,i], mergedSet[,j])
mergedSet[, j] <- NULL
}
}
}
}
}
mergedSet
# gas xhs
# 1 1 a s
# 2 3 b
# 3 5 c h