Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Indexing in Factors | Factors
R Introduction: Part I

book
Indexing in Factors

Excellent! Now, let's delve into how to manipulate or modify an existing factor variable.

To begin, we can specify which values to display by using indexing. This operates in the same way as indexing a vector. For instance, to show the third and fifth entries of the curr_f factor, we can use the following indexing:

# Vector of currencies as factor
curr_f <- factor(c('USD', 'EUR', 'AUD', 'NOK',
'CHF', 'EUR', 'AUD', 'EUR'))
# Output the third and the fifth values
curr_f[c(3,5)]
12345
# Vector of currencies as factor curr_f <- factor(c('USD', 'EUR', 'AUD', 'NOK', 'CHF', 'EUR', 'AUD', 'EUR')) # Output the third and the fifth values curr_f[c(3,5)]
copy

When R presents the output, it lists all levels beneath, even though only a couple of categorical values were shown. This feature becomes particularly handy when dealing with extensive data and trying to remember all the unique values is impractical.

If it's not necessary to display every level, you can include the drop = TRUE (or drop = T) parameter within the brackets []. This will show only the levels retrieved from indexing. The same operation as mentioned earlier would be written like this:

# Vector of currencies as factor
curr_f <- factor(c('USD', 'EUR', 'AUD', 'NOK',
'CHF', 'EUR', 'AUD', 'EUR'))
# Output the third and the fifth values
curr_f[c(3,5), drop = T]
12345
# Vector of currencies as factor curr_f <- factor(c('USD', 'EUR', 'AUD', 'NOK', 'CHF', 'EUR', 'AUD', 'EUR')) # Output the third and the fifth values curr_f[c(3,5), drop = T]
copy

Using individual indices may not be practical when you need to extract a series of elements. In R, you can generate a vector of consecutive integers by separating the starting and ending numbers with a colon :. For instance, 5:10 will produce a sequence 5, 6, 7, 8, 9, 10. Apply this technique in the upcoming task.

Opgave

Swipe to start coding

Considering the same dataset of blood types in a factor format, here are your tasks:

  1. Display the 3rd, 10th, and 15th elements of blood_gr, making sure to drop any unused levels (using the drop parameter).
  2. Show every element from the 15th to the 21st, inclusive.

Løsning

# Vector of blood types
blood_gr <- factor(c("O+","A+","O-","O+","A+","A+","B+",
"B+","AB+", "B+","O+","B+","A+","A-",
"O+","B+","A-","AB+", "B-","O-","AB-",
"O+","O+","A+","O+","A+"))
# Output the 3, 10, and 15 observations
blood_gr[c(3, 10, 15), drop = T]
# Output 15 - 21 observations
blood_gr[15:21]

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2
single

single

# Vector of blood types
blood_gr <- factor(c("O+","A+","O-","O+","A+","A+","B+",
"B+","AB+", "B+","O+","B+","A+","A-",
"O+","B+","A-","AB+", "B-","O-","AB-",
"O+","O+","A+","O+","A+"))
# Output the 3, 10, and 15 observations
___[___, ___ = ___]
# Output 15 - 21 observations
___[___]

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt