我是R的新手。
我有一个Data.frame,其中包含一个名为“Symbol”的列。
Symbol
1 "IDEA"
2 "PFC"
3 "RPL"
4 "SOBHA"
我需要将其值存储为向量(x = c("IDEA","PFC","RPL","SOBHA")
)。这是最简洁的方法吗?
答案 0 :(得分:31)
your.data <- data.frame(Symbol = c("IDEA","PFC","RPL","SOBHA"))
new.variable <- as.vector(your.data$Symbol) # this will create a character vector
VitoshKa建议使用以下代码。
new.variable.v <- your.data$Symbol # this will retain the factor nature of the vector
您想要什么取决于您的需求。如果您使用此向量进行进一步分析或绘图,保留向量的因子性质是一个明智的解决方案。
这两种方法有何不同:
cat(new.variable.v)
#1 2 3 4
cat(new.variable)
#IDEA PFC RPL SOBHA
答案 1 :(得分:0)
罗马·卢斯特里克(RomanLuštrik)提供了一个很好的答案,但是,$
符号经常被证明很难在管道中使用。在管道中,使用dplyr
函数pull()
。
# setting up
library(tidyverse)
# import tidyverse for dplyr, tibble, and pipe
df <- data.frame(Symbol = c("IDEA","PFC","RPL","SOBHA"))
> df
Symbol
1 IDEA
2 PFC
3 RPL
4 SOBHA
现在,数据帧已建立,我们将首先对数据帧进行一些随机变异,以表明它可以在管道中工作,最后,我们将使用pull()
。
myvector <- df %>%
mutate(example_column_1 = 1:4, example_column_2 = example_column_1^2) %>% #random example function
arrange(example_column_1) %>% #random example function
pull(Symbol) # finally, the pull() function; make sure to give just the column name as an argument
在pull()
函数之后,您甚至可以进一步操纵管道中的矢量。
> myvector
[1] IDEA PFC RPL SOBHA
Levels: IDEA PFC RPL SOBHA
> typeof(myvector)
[1] "integer"
typeof(myvector)
返回整数,因为这是因子的存储方式,因子的不同级别以整数形式存储(我认为至少是这样存储它们的方式) )。如果要转换为字符向量,只需使用as.character(myvector)
。
最后,当您想从数据帧中提取矢量或对进行小标题时,请使用dplyr
的{{1}}函数(并仅输入要提取的列名)。管道。