Прежде всего, если вы можете, пожалуйста, включите ваш минимальный воспроизводимый пример в блок кода, чтобы людям было проще ответить, смогут ли они скопировать и вставить ваш код.
Основываясь на вашем примере,names(mydata[i])
не работает, потому что i
содержит все значения в столбце, а не ссылку на столбец.Кроме того, обычно вы хотите, чтобы что-то более похожее на names(mydata)[i]
выбрало одно значение из вектора имен.
Чтобы получить имена на графике рассеяния, попробуйте следующее:
# Sample data
f1 <- rnorm(100)
f2 <- rnorm(100)
f3 <- rnorm(100)
t1 <- rnorm(100)
t2 <- rnorm(100)
df <- data.frame(f1, f2, f3, t1, t2)
# Features, Targets to compare
targets <- c('t1', 't2')
features <- c('f1', 'f2', 'f3')
# The nested for loop.
for (i in features) {
# i = 'f1', 'f2', 'f3', 'fn'
for (j in targets) {
# j = 't1', 't2', 'tn'
p <- plot(
df[[i]], # Reference to the dataframe column titled 'fn'
df[[j]], # Reference to the dataframe column titled 'tn'
main = paste(i, 'x', j), # Title using the strings
xlab = i, # x-axis title
ylab = j # y-axis title
)
}
}