Named vectors let you give names to each value in a list of numbers or words. This makes it easier to find and understand the data.
Named vectors in R Programming
vector <- c(name1 = value1, name2 = value2, name3 = value3)
Use the c() function to create a vector with names.
Each name is followed by an equals sign = and then the value.
scores <- c(math = 90, science = 85, english = 88)
temps <- c(Monday = 22, Tuesday = 24, Wednesday = 20)
colors <- c(red = "#FF0000", green = "#00FF00", blue = "#0000FF")
This program creates a named vector of fruits with quantities. It prints the whole vector, then the quantity of bananas, and finally the names of all fruits.
fruits <- c(apple = 3, banana = 5, orange = 2) print(fruits) print(fruits["banana"]) print(names(fruits))
You can access values by their names using square brackets and quotes, like vector["name"].
Names help you avoid mistakes when the order of values changes.
Named vectors work well for small sets of data but for bigger data, consider other structures like data frames.
Named vectors let you label each value for easier access and understanding.
You create them using c(name = value) syntax.
Access values by name using vector["name"].
Practice
Solution
Step 1: Understand vector naming
Named vectors have names assigned to each element, making it easier to access elements by name.Step 2: Compare options
Only A vector where each element has a name label for easy access correctly describes a named vector as having name labels for elements.Final Answer:
A vector where each element has a name label for easy access -> Option BQuick Check:
Named vector = vector with names [OK]
- Thinking named vectors only hold numbers
- Confusing named vectors with immutable vectors
- Assuming named vectors store only strings
Solution
Step 1: Recall named vector syntax
Named vectors are created using c(name = value) pairs.Step 2: Check each option
c(apple = 5, banana = 3, cherry = 7) uses correct syntax: c(apple = 5, banana = 3, cherry = 7). Others use invalid syntax or functions.Final Answer:
c(apple = 5, banana = 3, cherry = 7) -> Option AQuick Check:
Use c(name = value) to create named vectors [OK]
- Using colons instead of equals for naming
- Trying to use non-existent functions like named_vector()
- Placing values before names incorrectly
fruits <- c(apple = 10, banana = 5, cherry = 8) fruits["banana"]
Solution
Step 1: Understand named vector indexing
Accessing a named vector element by name returns a named vector of length 1 with that element.Step 2: Analyze the code output
fruits["banana"] returns a named vector with name 'banana' and value 5, shown as c(banana = 5).Final Answer:
c(banana = 5) -> Option DQuick Check:
Access by name returns named vector element [OK]
- Expecting just the value without name
- Confusing output with string name
- Assuming it causes an error
numbers <- c(1 = "one", 2 = "two", 3 = "three")
Solution
Step 1: Check named vector syntax
Named vectors use name = value pairs, with names on the left and values on the right.Step 2: Analyze the code
The code uses numbers on the left and strings on the right, which reverses the expected order.Final Answer:
Values and names are reversed; names should be strings on the left -> Option AQuick Check:
Names = values, not values = names [OK]
- Putting values on left and names on right
- Thinking numbers cannot be names (they can as strings)
- Believing c() can't create named vectors
temps <- c(Mon = 22, Tue = 25, Wed = 20, Thu = 23), how would you create a new named vector with only days where temperature is above 22?Solution
Step 1: Understand logical indexing with named vectors
You can use a logical condition inside square brackets to filter elements.Step 2: Apply condition temps > 22
temps > 22 returns TRUE for days with temperature above 22, so temps[temps > 22] selects those days.Final Answer:
temps[temps > 22] -> Option CQuick Check:
Use logical condition inside brackets to filter named vectors [OK]
- Using incorrect comparison operators
- Trying to index by string '>22' which is invalid
- Selecting equal or less than values instead of greater
Ready to prove it?
Pass the test and this pattern moves unknown
