#r
Вопрос:
Я хотел бы знать, есть ли другой способ написать мою базу данных ниже. Обратите внимание , что я вхожу дважды Segunda
, дважды Terca
, дважды Quarta
и так далее D1
. Я имею в виду, что Segunda
это то же самое, что segunda
или segunda-feira
. Но я не хотел повторять Segunda
дважды, например, в D1
. Есть ли другой способ закодировать это?
dayinportugues <- data.frame(
D1 = c("Segunda", "Segunda", "Terca", "Terca","Quarta","Quarta", "Quinta", "Quinta", "Sexta","Sexta", "Sabado", "Domingo"),
D2 = c("segunda", "segunda-feira","terca","terça-feira", "quarta","quarta-feira", "quinta","quinta-feira", "sexta","sexta-feira", "sabado", "domingo"))
> dayinportugues
D1 D2
1 Segunda segunda
2 Segunda segunda-feira
3 Terca terca
4 Terca terça-feira
5 Quarta quarta
6 Quarta quarta-feira
7 Quinta quinta
8 Quinta quinta-feira
9 Sexta sexta
10 Sexta sexta-feira
11 Sabado sabado
12 Domingo domingo
Ответ №1:
Мы можем извлечь D1 из D2: разделить "-"
, получить 1-й элемент, преобразовать буквы с ударением в эквивалент без ударения, наконец, преобразовать в заголовок:
x <- c("segunda", "segunda-feira","terca","terça-feira", "quarta", "quarta-feira",
"quinta","quinta-feira", "sexta","sexta-feira", "sabado", "domingo")
tools::toTitleCase(iconv(sapply(strsplit(x, "-"), "[", 1), to = "ASCII//TRANSLIT"))
# [1] "Segunda" "Segunda" "Terca" "Terca" "Quarta" "Quarta"
# [7] "Quinta" "Quinta" "Sexta" "Sexta" "Sabado" "Domingo"
Ответ №2:
Может быть, вы имеете в виду что-то вроде этого
# data:
D1
[1] "Segunda" "Terca" "Quarta" "Quinta" "Sexta" "Sabado" "Domingo"
D2
[1] "segunda" "segunda-feira" "terca" "terça-feira"
[5] "quarta" "quarta-feira" "quinta" "quinta-feira"
[9] "sexta" "sexta-feira" "sabado" "domingo"
# repeat the work-week days twice
cbind( D1=c(rep(D1[1:5], each=2), D1[6:7] ), D2)
D1 D2
[1,] "Segunda" "segunda"
[2,] "Segunda" "segunda-feira"
[3,] "Terca" "terca"
[4,] "Terca" "terça-feira"
[5,] "Quarta" "quarta"
[6,] "Quarta" "quarta-feira"
[7,] "Quinta" "quinta"
[8,] "Quinta" "quinta-feira"
[9,] "Sexta" "sexta"
[10,] "Sexta" "sexta-feira"
[11,] "Sabado" "sabado"
[12,] "Domingo" "domingo"