我正在寻找一种快速简便的方法,通过从现有列和命名向量映射在我的data.frame中创建一个新列。 例如:
df <- data.frame(letters = LETTERS[1:8]) vec <- c("A" = "1", "B" = "2", "C" = "3", "D" = "1", "E" = "2", "F" = "3", "G" = "1", "H" = "2")
从此我想要:
letters numbers 1 A 1 2 B 2 3 C 3 4 D 1 5 E 2 6 F 3 7 G 1 8 H 2
我希望有一些简单的东西能起作用:
df$numbers <- vec[[df$letters]]
但这给了我
Error in vec[[df$letters]] : attempt to select more than one element
在此先感谢您的帮助。
I am looking for a fast and easy way to create a new column in my data.frame by mapping from an existing column and a named vector. For example:
df <- data.frame(letters = LETTERS[1:8]) vec <- c("A" = "1", "B" = "2", "C" = "3", "D" = "1", "E" = "2", "F" = "3", "G" = "1", "H" = "2")
From this I want:
letters numbers 1 A 1 2 B 2 3 C 3 4 D 1 5 E 2 6 F 3 7 G 1 8 H 2
I was hoping something as simple as this would work:
df$numbers <- vec[[df$letters]]
But this gives me
Error in vec[[df$letters]] : attempt to select more than one element
Thanks in advance for your help.
最满意答案
感谢@Pierre Lafortune提供以下答案:
df$numbers <- vec[df$letters]Thanks to @Pierre Lafortune for the following answer:
df$numbers <- vec[df$letters]更多推荐
发布评论