这段代码在 RSTUDIO 中运行良好:
pos1<- min(which(is.na(extract[1,])==FALSE))
pos2<-(min(which(is.na(extract[1,])==FALSE & extract[1,]%in%hh[,1]==FALSE))-1)
set1<-extract[1, pos1:pos2]
repsc<-length(which(is.na(set1[1,])==TRUE))/length(which(is.na(set1[1,])==FALSE))
set2<-set1[is.na(set1[1,])==FALSE,]
set2[,is.na(set2[1,])==TRUE]<-NULL
set2<-set2[-c(2,3),]
set1[1,]<-rep(set2,1,each=(repsc+1))
extract[1,pos1:pos2]<-set1
这变成了这样:
X8 X9 X10 X11 X12 X13 X14 X15 X16
5 HH Live <NA> <NA> HH Live+ <NA> <NA> HH Com <NA> <NA>
6 <NA> <NA> 1 Day <NA> 2 Day C3 <NA> C7
7 Rtg Sh AA Rtg AA Rtg Rtg AA Rtg
对此:
X8 X9 X10 X11 X12 X13 X14 X15 X16
5 HH Live HH Live HH Live HH Live+ HH Live+ HH Live+ HH Com HH Com HH Com
6 <NA> <NA> 1 Day <NA> 2 Day C3 <NA> C7
7 Rtg Sh AA Rtg AA Rtg Rtg AA Rtg
但是,在 Alteryx R 工具中会发生两件事:
1) set1 不会复制到提取中,这意味着它不会将 HH LIVE、HH LIVE+ 和 HH COM 复制到第 1 行。一行代码似乎把它搞砸了(适用于 RSTUDIO,而不是 R TOOL在 Alteryx 中:
extract[1,pos1:pos2]<-set1
2)我在 Alteryx 中收到此警告消息:
R (2) 1: In `[<-.factor`(`*tmp*`, iseq, value = 89L) :
R (2) invalid factor level, NA generated
我检查了我的数据类型——它们都是因素,两个对象都是类“data.frame”。
这里发生了什么?