Как я могу превратить слова в число для графа? - PullRequest
0 голосов
/ 16 мая 2019

Выберите отдел, в котором вы работаете b c d

Biological Sciences 2   Satisfied   Neither satisfied nor dissatisfied
Biological Sciences 1   Neither satisfied nor dissatisfied  Somewhat dissatisfied
Biological Sciences 9   Somewhat satisfied  Satisfied
Biological Sciences 30  Very satisfied  Somewhat satisfied
Biological Sciences 1   Very satisfied  Satisfied
Biological Sciences 3   Somewhat satisfied  Somewhat satisfied
Biological Sciences 1   Satisfied   Satisfied
Biological Sciences 14  Very satisfied  Somewhat satisfied
Biological Sciences 25  Somewhat dissatisfied   Dissatisfied
Biological Sciences 2   Very satisfied  Very satisfied
Biological Sciences 14  Satisfied   Somewhat satisfied
Biological Sciences 8   Very satisfied  Very satisfied

Я хочу превратить удовлетворенное и другое в число, чтобы построить график в R.

1 Ответ

1 голос
/ 16 мая 2019

Мало того, что эти значения факторов, они упорядочены факторы, иначе порядковые .

В будущем, если вы могли бы использовать 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)])

enter image description here

Но если вам нужны только числовые значения, это так же просто, как использовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...