我有一个叫做sl
的角色[1] a b c
和一个名为returns.ts的矩阵。
a b d
[1] 2 3 4
[4] 1 2 3
[7] 4 3 2
我想得到字符和矩阵的名称与矩阵中的数据的交集,如下所示:
a b
[1] 2 3
[3] 1 2
[5] 4 3
我尝试过使用代码
r.sl <- returns.ts[intersect(names(returns.ts), names(sl))]
但是,创建的对象显示为空。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您需要做的就是将列表元素的名称传递给矩阵的j
以返回所需的列:
returns.ts[, names(sl)]
检查sl是否为列表,而不是矢量 - class(sl)
。
答案 1 :(得分:1)
test <- matrix(1:12,ncol = 3)
colnames(test) <- c('a','b','d')
sl <- setNames(c(10,20,40),c('a','b','c'))
test[,which(colnames(test) %in% names(sl))]