Мало того, что эти значения факторов, они упорядочены факторы, иначе порядковые .
В будущем, если вы могли бы использовать dput()
, когда вы поделитесьваши данные, это было бы здорово, в отсутствие этого я буду использовать это представление:
tab <- structure(list(Course=c("Biological Sciences", "Biological Sciences",
"Biological Sciences", "Biological Sciences", "Biological Sciences",
"Biological Sciences", "Biological Sciences", "Biological Sciences",
"Biological Sciences", "Biological Sciences", "Biological Sciences",
"Biological Sciences"), Value=c(2L, 1L, 9L, 30L, 1L, 3L, 1L, 14L, 25L, 2L, 14L,
8L), "Lik-1"=c("Satisfied", "Neither satisfied nor dissatisfied",
"Somewhat satisfied", "Very satisfied", "Very satisfied", "Somewhat satisfied",
"Satisfied", "Very satisfied", "Somewhat dissatisfied", "Very satisfied",
"Satisfied", "Very satisfied"), "Lik-2"=c("Neither satisfied nor dissatisfied",
"Somewhat dissatisfied", "Satisfied", "Somewhat satisfied", "Satisfied",
"Somewhat satisfied", "Satisfied", "Somewhat satisfied", "Dissatisfied",
"Very satisfied", "Somewhat satisfied", "Very satisfied")), class="data.frame",
row.names=c(NA, -12L))
Чтобы преобразовать два столбца Lik в порядковый номер, нам нужно указать порядок уровней.Я предполагаю, что это что-то вроде этого:
# From low to high
lv <- c("Very dissatisfied", "Dissatisfied", "Somewhat dissatisfied",
"Neither satisfied nor dissatisfied",
"Somewhat satisfied", "Satisfied", "Very satisfied" )
Чтобы просто преобразовать один столбец, мы могли бы сделать ordered(tab[, 3], levels=lv)
, но, поскольку мы хотим сделать больше, чем один, имеет смысл зациклить их, используя lapply()
.
# We assume the two columns use the same set of ordinals
tab[,3:4] <- lapply(tab[,3:4], ordered, levels=lv)
Я не знаю, как вы хотите построить это (возможно, отдельный вопрос), но один из способов может быть таким:
par(mfrow=c(2, 1), mar=c(2.5, 2.5, 0.5, 0.5), mgp=c(1.5, 0.5, 0))
plot(tab[,c(2, 3)])
plot(tab[,c(2, 4)])

Но если вам нужны только числовые значения, это так же просто, как использовать as.numeric()
sapply(tab[,3:4], as.numeric)
# Lik-1 Lik-2
# [1,] 6 4
# [2,] 4 3
# [3,] 5 6
# [4,] 7 5
# [5,] 7 6
# [6,] 5 5
# [7,] 6 6
# [8,] 7 5
# [9,] 3 2
# [10,] 7 7
# [11,] 6 5
# [12,] 7 7