Как настроить генерацию набора данных

#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"