データフレーム内の列のペアの関係をチェックしたいと思います。 ABが偶数列(2番目)に存在する場合、奇数列(1番目)の観測値をこの偶数列のある値に置き換えます。 1列目から2列目、3列目から4列目などの複数列の列で同じ操作をしたい場合は、以下に書いたように手作業で行うことができますが、このような列が10ペアあればどのように私は効率的にそれを行うことができますか?たとえば、sapply
を使用しますか?ベクトル化関数を使用してデータフレーム内の列をチェックする方法
##generate demo data
data<-data.frame(a<-c(1:5),
b<-c(1,2,'AC','ABAB',4),
c<-c(2:6),
d<-c(2,3,5,'BC','AB')
,stringsAsFactors = F)
data[,c(1,3)]<-sapply(data[,c(1,3)],as.character)
names(data)<-letters[1:4]
str(data)
##manual version
indx<-!grepl('[^AB]', data$c)
data$a[indx]<-data$c[indx]
indx<-!grepl('[^AB]', data$d)
data$b[indx]<-data$d[indx]
data
# a b c d
# 1 1 1 2 2
# 2 2 2 3 3
# 3 3 AC 4 5
# 4 4 ABAB 5 BC
# 5 5 AB 6 AB
は 'データです[、1:2] < - データ[、3:4] 'それを行う必要があります..? – Frank
試してみましたか? http://stackoverflow.com/questions/28639040/in-r-compare-one-column-value-to-all-other-columns – amrrs
同一の関数を使用して2つの列が同一であるかどうかを確認する方法 –