我是R的新手,需要使用library(caret)
data("cars")
carSubset <- subset(cars)
head(carSubset)
# I want to convert the columns from of carSubset with following vector names
types <- c("convertible","coupe", "hatchback", "sedan", "wagon")
head(carSubset[,types])
carSubset[,types]
# into 1 column named Type, with the corresponding column name
carSubset$Type <- NULL
newSubset <- c()
newSubset <- apply(carSubset[,types],
1,
function(obs){
hit_index <- which(obs == 1)
newSubset <- types[hit_index]
})
newSubset
carSubset$Type <- cbind(Type = newSubset)
head(carSubset[, !(names(carSubset) %in% types)])
包中的getnfac
函数。并且似乎该函数仅将PANICr
对象作为其第一个参数。但是,在我读完一些内容后,我仍然不了解xts
对象是什么。有人可以告诉我如何将xts
转换为matrix
对象吗?
下面我使用xts
矩阵作为第一个参数。因此,我只需要将return
转换为return
对象。
xts
答案 0 :(得分:3)
xts
是一个可扩展的时间序列对象,实际上是一个常规的ts
对象(或更正确的zoo
对象),并添加了一些位。
名称的“可扩展”部分指的是如何添加自己选择的属性。
虽然matrix
可以很容易地转换为多变量时间序列
m <- matrix(1:16, 4)
m.ts <- ts(m)
index(m.ts)
xts
要求其索引(描述每个样本在何时采用的向量)采用日期或时间格式
library(xts)
m <- matrix(1:16, 4)
d <- as.Date(1:nrow(m))
m.xts <- xts(m, order.by=d)
index(m.xts)
如果您的数据以均匀间隔的间隔进行采样,则上面的虚拟索引可能正常。如果没有,您将需要提供与采样时间相对应的向量。
答案 1 :(得分:0)
在我看来,getnfac()
函数的第一个参数应该是包含数据的矩阵。
除上述答案外,
您可以使用coredata()
关于xts
对象转换矩阵格式。