相关疑难解决方法(0)

使用$和列名称向量动态选择数据框列

我希望根据不同的列来订购数据框,一个转弯.我有一个字符向量,其中的相关列名order应该基于:

parameter <- c("market_value_LOCAL", "ep", "book_price", "sales_price", "dividend_yield",
               "beta", "TOTAL_RATING_SCORE", "ENVIRONMENT", "SOCIAL", "GOVERNANCE")
Run Code Online (Sandbox Code Playgroud)

我想循环遍历名称parameter并动态选择要用于order我的数据的列:

Q1_R1000_parameter <- Q1_R1000[order(Q1_R1000$parameter[X]), ]
Run Code Online (Sandbox Code Playgroud)

这里X1:10(因为我有10个项目parameter).


为了使我的示例可重现,请考虑mtcars存储在字符向量中的数据集和一些变量名称cols.当我尝试mtcars使用动态子集选择变量时cols,以与上面(Q1_R1000$parameter[X])相似的方式,未选择该列:

cols <- c("cyl", "am")
mtcars$cols[1]
# NULL
Run Code Online (Sandbox Code Playgroud)

r dataframe r-faq

103
推荐指数
4
解决办法
10万
查看次数

什么是`[[`在这个公平的例子中寻找?

后续如何使用`[[`和`$`作为函数?问题:我开始玩原始设置(为简单起见,将尺寸从10000缩小到3)

JSON <- rep(list(x,y),3)
x <- list(a=1, b=1)
y <- list(a=1)
JSON <- rep(list(x,y),3)
sapply(JSON, "[[", "a")
[1] 1 1 1 1 1 1
sapply(JSON,"[[",'b')
[[1]]
[1] 1

[[2]]
NULL

[[3]]
[1] 1

[[4]]
NULL

[[5]]
[1] 1

[[6]]
NULL

sapply(JSON,'[[',1)
[1] 1 1 1 1 1 1
sapply(JSON,'[[',2)
Error in FUN(X[[2L]], ...) : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

我认为我理解 - 搜索"b"与要求存在第二个元素不同.但后来,我创建了一个更深入的列表:

NOSJ<-rep(list(JSON),3)

sapply(NOSJ,'[[',1)
  [,1] [,2] [,3]
a 1    1    1   
b 1    1    1   
sapply(NOSJ,'[[',2)
$a
[1] 1 …
Run Code Online (Sandbox Code Playgroud)

r sapply

6
推荐指数
1
解决办法
156
查看次数

标签 统计

r ×2

dataframe ×1

r-faq ×1

sapply ×1