d1 <- read.table(text="
X5f65665a X8c267f9f X169df433 X5742e722 X148d530d X88febf48
F185 X5f65665a 0 X169df433 0 X148d530d X88febf48
F186 X5f65665a 0 X169df433 0 X148d530d 0
M187 X5f65665a X8c267f9f X169df433 0 X148d530d X88febf48
F188 0 X8c267f9f X169df433 0 X148d530d 0
M189 X5f65665a X8c267f9f X169df433 0 X148d530d X88febf48
F190 X5f65665a 0 X169df433 0 X148d530d X88febf48",
head=T, as.is=T, row.names=1)
d1.lst <- lapply(seq(1, ncol(d1), by=2), function(x){return(d1[, x:(x+1)])})
d1.lst.fil <- lapply(d1.lst, function(x){
x[,1][x[,1]==0] <- x[,2][x[,1]==0]
x[,2][x[,2]==0] <- x[,1][x[,2]==0]
return(x)
})
d2 <- do.call(cbind, d1.lst.fil)
# X5f65665a X8c267f9f X169df433 X5742e722 X148d530d X88febf48
# F185 X5f65665a X5f65665a X169df433 X169df433 X148d530d X88febf48
# F186 X5f65665a X5f65665a X169df433 X169df433 X148d530d X148d530d
# M187 X5f65665a X8c267f9f X169df433 X169df433 X148d530d X88febf48
# F188 X8c267f9f X8c267f9f X169df433 X169df433 X148d530d X148d530d
# M189 X5f65665a X8c267f9f X169df433 X169df433 X148d530d X88febf48
# F190 X5f65665a X5f65665a X169df433 X169df433 X148d530d X88febf48
UPDATE:
はisssueは "NA" によって引き起こされます。以下のスクリプトを試してみてください。 「NA」は変更されません。
d1.lst.fil <- lapply(d1.lst, function(x){
x[,1][!is.na(x[,1]) & x[,1]=="0"] <- x[,2][!is.na(x[,1]) & x[,1]=="0"]
x[,2][!is.na(x[,2]) & x[,2]=="0"] <- x[,1][!is.na(x[,2]) & x[,2]=="0"]
return(x)
})
それは最初の10×10で素晴らしいですが、全体のデータフレームで私が取得:xのエラー[1] [X [1] == 0] < - X [2] [X [1] == 0]: 添字付きの割り当てではNAsは使用できません – dnatheist
再現可能な例を示してください。私はいくつかの提案があります:(1)すべての列が文字か整数かを確認してください。 2] [x [、1] == "0"]およびx [、2] [x [、2] [x [、1] ] == "0"] < - X [1] [X [2] == "0"] –
「D1 < - read.tableを(テキスト=」 X5f65665a X8c267f9f X169df433 X5742e722 X148d530d X88febf48 F185 X5f65665a 0 X169df433 0 X148d530d X88febf48 F186 X5f65665a 0 X169df433 0 X148d530d 0 M187 X5f65665a X8c267f9f X169df433 0 X148d530d X88febf48 F188 0 X8c267f9f NA NA X148d530d 0 M189 X5f65665a X8c267f9f X169df433 0 X148d530d X88febf48 F190 X5f65665a 0 X169df433 0 X148d530d X88febf48" 、 ヘッド= T、 as.is = T、row.names = 1) ' – dnatheist