Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何从数据帧中提取单个列作为向量_R_Vector_Dataframe_Extract_Numeric - Fatal编程技术网

R 如何从数据帧中提取单个列作为向量

R 如何从数据帧中提取单个列作为向量,r,vector,dataframe,extract,numeric,R,Vector,Dataframe,Extract,Numeric,我有一个文件已保存为二进制压缩文件,我记得使用以下命令 rates.data = readRDS(paste("~/Documents/.../..../RatesData/", "2013-01-14", ".rds", sep = "")) 这给了我: rates.data # Date USSW1 USSW2 USSW3 USSW4 USSW5 USSW7 USSW10 USSW30 # 3271 2013-01-14 0.31 0.38 0.50 0.6

我有一个文件已保存为二进制压缩文件,我记得使用以下命令

rates.data = readRDS(paste("~/Documents/.../..../RatesData/", 
"2013-01-14", ".rds", sep = ""))
这给了我:

rates.data
#            Date USSW1 USSW2 USSW3 USSW4 USSW5 USSW7 USSW10 USSW30
# 3271 2013-01-14  0.31  0.38  0.50  0.67  0.89  1.34   1.88   2.83
但是,我只想要价格。我尝试了以下方法:

rates.data[2:9]
# USSW1 USSW2 USSW3 USSW4 USSW5 USSW7 USSW10 USSW30
# 3271  0.31  0.38  0.50  0.67  0.89  1.34   1.88   2.83

rate.data[1,[2:9]] this does not work
这只给了我一个元素

rates.data[1,2]
[1] "0.31"
…或作为数字:

as.numeric(rates.data[1,2])
[1] 0.31
但是,我还是不能得到向量。如何提取向量

str(rates.data) # returns the following - so its actually a data frame

'data.frame':   1 obs. of  9 variables:
$ Date  : chr "2013-01-14"
$ USSW1 : chr "0.31"
$ USSW2 : chr "0.38"
$ USSW3 : chr "0.50"
$ USSW4 : chr "0.67"
$ USSW5 : chr "0.89"
$ USSW7 : chr "1.34"
$ USSW10: chr "1.88"
$ USSW30: chr "2.83"

正如@nograps所暗示的那样

as.numeric(rates.data[, 2:9])
## [1] 0.31 0.38 0.50 0.67 0.89 1.34 1.88 2.83

rates.data[,2:9]

df[row index,col index]
是您所需要的全部,如果您指定了另一个,您可以省略其中一个,因此这里我们只给出col index


(如果省略逗号,比如
rates.data[2:9]
,这仍然会被视为列索引,但它很松散。)

尝试
as.numeric(rates.data[1,2:9])
或者更好的
as.numeric(rates.data[1,-1])
在切片数据帧时,行索引在逗号之前,列索引在逗号之后。如果省略逗号,如
rates.data[2:9]
,列索引将被误解为行索引,而不是您想要的。至于
rates.data[1,[2:9]]
,第二组参数的语法是错误的,没有必要
df[行索引,列索引]
是您所需要的全部。谢谢,答案一旦提供,直观上就显而易见了