相关疑难解决方法(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万
查看次数

函数参数的部分匹配

我知道,对于一个列表,使用基本运营商建立索引时,部分匹配完成$[[.例如:

ll <- list(yy=1)
ll$y
[1] 1
Run Code Online (Sandbox Code Playgroud)

但我仍然是一个R新手,这对我来说是新的,函数参数的部分匹配:

h <- function(xx=2)xx
h(x=2)
[1] 2
Run Code Online (Sandbox Code Playgroud)

我想了解这是如何工作的.它背后的机制是什么?这有副作用吗?我想知道如果给出了xx参数,有人可以测试一下吗?

Andrie评论后编辑:

内部R使用pmatch算法来匹配参数,这里是一个如何工作的示例:

 pmatch("me",   c("mean", "median", "mode")) # error multiple partial matches
[1] NA
> pmatch("mo",   c("mean", "median", "mode")) # mo match mode match here
[1] 3
Run Code Online (Sandbox Code Playgroud)

但为什么R有这样的功能呢?partial unique匹配背后的基本理念是什么?

r semantics

21
推荐指数
1
解决办法
3699
查看次数

递归对象和原子对象的定义是什么?

R文档

如果x是原子类型(或NULL),则is.atomic返回TRUE,否则返回FALSE.

如果x具有递归(类似列表)结构,则is.recursive返回TRUE,否则返回FALSE.

对于原子类型("逻辑","整数","数字","复杂","字符"和"原始")和NULL,is.atomic为true.

除了原子类型,NULL和符号(由as.name给出)之外,大多数类型的对象都被认为是递归的.

根据以上所述,我认为向量是一个递归对象,但两个函数显示相反.

函数(如c)也是递归对象

那么R 中递归对象和原子对象的定义是什么?

r

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

标签 统计

r ×3

dataframe ×1

r-faq ×1

semantics ×1