相关疑难解决方法(0)

用于访问列表或数据框元素的方括号[]和双括号[[]]之间的区别

R提供了两种不同的方法来访问列表或data.frame- []和[[]]运算符的元素.

两者有什么区别?在什么情况下我应该使用一个而不是另一个?

r extract list dataframe r-faq

490
推荐指数
10
解决办法
21万
查看次数

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

我希望根据不同的列来订购数据框,一个转弯.我有一个字符向量,其中的相关列名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)

这里X是1: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万
查看次数

R - 使用变量访问数据框列

请考虑以下代码

a = "col1"
b = "col2"
d = data.frame(a=c(1,2,3),b=c(4,5,6))
Run Code Online (Sandbox Code Playgroud)

此代码生成以下数据框

  a b
1 1 4
2 2 5
3 3 6
Run Code Online (Sandbox Code Playgroud)

但是,所需的数据框是

  col1 col2
1 1    4
2 2    5
3 3    6
Run Code Online (Sandbox Code Playgroud)

此外,我希望能够做到像d$a那么这将抢d$col1自a = "col1"

如何判断R "a"是变量而不是列的名称?

r dataframe

25
推荐指数
2
解决办法
5万
查看次数

通过函数参数访问 R 列表元素

我有一个 R 列表,如下所示

> str(prices)
List of 4
 $ ID   : int 102894616
 $ delay: int 8
 $ 47973      :List of 12
  ..$ id       : int 47973
  ..$ index        : int 2
  ..$ matched: num 5817
 $ 47972      :List of 12
..
Run Code Online (Sandbox Code Playgroud)

显然,我可以通过例如prices$"47973"$id 访问任何元素。

但是,我如何编写一个参数化对该列表的访问的函数?例如带有签名的访问函数:

access <- function(index1, index2) { .. }
Run Code Online (Sandbox Code Playgroud)

可以如下使用:

> access("47973", "matched")
5817
Run Code Online (Sandbox Code Playgroud)

这看起来很微不足道,但我无法编写这样的函数。感谢您的指点。

syntax r list

3
推荐指数
1
解决办法
1605
查看次数

标签 统计

r ×4

dataframe ×3

list ×2

r-faq ×2

extract ×1

syntax ×1