相关疑难解决方法(0)

如何动态命名变量?

是否可以动态创建新的变量名称?

我想将列表中的数据帧读入最后带数字的新变量.像orca1,orca2,orca3 ......

如果我尝试类似的东西

paste("orca",i,sep="")=list_name[[i]]
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

target of assignment expands to non-language object
Run Code Online (Sandbox Code Playgroud)

还有另一种方法吗?

r assign r-faq

89
推荐指数
4
解决办法
9万
查看次数

<my code>出错:赋值目标扩展为非语言对象

我收到了错误

Error in <my code> : target of assignment expands to non-language object
Run Code Online (Sandbox Code Playgroud)

要么

Error in <my code> : invalid (do_set) left-hand side to assignment
Run Code Online (Sandbox Code Playgroud)

要么

Error in <my code> : invalid (NULL) left side of assignment
Run Code Online (Sandbox Code Playgroud)

它是什么意思,我该如何预防呢?

r r-faq

28
推荐指数
1
解决办法
4万
查看次数

生成动态R降价块

在我的数据集中,我有60个组要分析,并使用R Markdown将其放入HTML报告中.因为我想对每个组应用相同的分析,我希望有一种方法可以动态生成代码块/分析.

简单地说,我想避免复制块60次.

我碰到这个这个问题,它使用儿童knitr.我试图用虹膜数据集复制它.在下面的例子中,我想做的就是生成三个H4标题,每个标题一个.

值得注意的是,我没有嫁给这种方法,它似乎与我想要做的事情有关.

这是我使用的文件:

parent.RMD文件.这将是我的"主人"报告.

Automate Chunks of Analysis in R Markdown 
========================================================


```{r setup, echo=FALSE}
library(knitr)
```


```{r run-numeric-md, include=FALSE}
out = NULL
for (i in as.character(unique(iris$Species))) {
  out = c(out, knit_child('child.Rmd'))
}
Run Code Online (Sandbox Code Playgroud)

```

这是child.Rmd.

#### Species = `r [i]`
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

24
推荐指数
2
解决办法
6756
查看次数

R:将列表项转换为对象

我有一个我手动创建的对象列表,如下所示:

rand1 <- rnorm(1e3)
rand2 <- rnorm(1e6)

myObjects <- NULL
myObjects[[1]] <-rand1
myObjects[[2]] <-rand2
names(myObjects) <- c("rand1","rand2")
Run Code Online (Sandbox Code Playgroud)

我正在研究捆绑对象的一些代码并将它们放在S3中.然后我在EC2中有代码,我想获取myObjects列表并自动"解包"它.在这个例子中,列表只有两个对象,名称是已知的,但我如何编码它来处理任何长度和任何名称的列表?

#pseudo code
for each thing in myObjects
  thing <- myObjects[[thing]]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何取名(myObjects)[1]并将其转换为一个对象的名称,我将为其分配myObjects [[1]]的内容.我可以处理循环,但创建每个对象有点让我挂起.我确信这很简单,但我不能理解它.

r list

6
推荐指数
3
解决办法
3642
查看次数

如何分配R中变量值的names()属性

在R中,"assign('x',v)"将名称为"x"的对象设置为v.将"x"替换为将文本函数应用于变量x的结果.然后"分配"显示其价值.

不幸的是,"assign('paste('name(','x',')',sep =''),v)"失败.因此,如果'x'是变量x,我可以设置它的值,但我不能给它的元素命名.

可以解决这个问题吗?也许是一个解析的伎俩?谢谢.

attributes r names lvalue

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

从向量创建一系列向量

我有一个简单的两个矢量数据帧(长度= 30),看起来像这样:

> mDF
    Param1 w.IL.L
1   AuZgFw    0.5
2   AuZfFw      2
3   AuZgVw   74.3
4   AuZfVw  20.52
5   AuTgIL   80.9
6   AuTfIL  193.3
7   AuCgFL    0.2
8   ...
Run Code Online (Sandbox Code Playgroud)

我想使用每一行来形成30个单值数值向量,其中包含从中获取的向量的名称mDF$Param1,以便:

> AuZgFw       
[1] 0.5     
Run Code Online (Sandbox Code Playgroud)

等等

我尝试过融化和铸造,但我怀疑可能有更简单的方法吗?

r vector dataframe

2
推荐指数
1
解决办法
621
查看次数

在函数中使用Dplyr创建新数据框

我正在尝试使用R 3.2.2从dplyr 0.4.3函数创建新的数据框。

我想做的是使用dplyr :: filter创建一些新的数据帧,以将数据从一个巨大的数据帧中分离为一堆较小的数据帧。

对于可重现的基本案例沼泽简单示例,我使用了以下示例:

filter(mtcars, cyl == 4)
Run Code Online (Sandbox Code Playgroud)

我知道我需要将其分配给它自己的数据框,因此我从以下内容开始:

paste("Cylinders:", x, sep = "") <- filter(mtcars, cyl == 4))
Run Code Online (Sandbox Code Playgroud)

那没有用-它给了我在这里发现的错误:赋值扩展为非语言对象

从那里,我发现了这一点:在R中使用粘贴创建变量名

(也是上述作者的大事)

这使我想到了这一点,它起作用了:

assign(paste("gears_cars_cylinders", 4, sep = "_"), filter(mtcars, cyl == 4)) %>% 
    group_by(gear) %>% 
    summarise(number_of_cars = n())
Run Code Online (Sandbox Code Playgroud)

通过“工作”,我的意思是我得到一个名为gears_cars_cylinders_4的数据框,其中包含来自

filter(mtcars, cyl == 4) %>% 
        group_by(gear) %>% 
        summarise(number_of_cars = n())
Run Code Online (Sandbox Code Playgroud)

但最终,我认为我需要将整个东西包装到一个函数中,并能够将其的柱面数提供给它mtcars$cyl。我在想什么plyr::ldply(mtcars$cyl, function_name)

在我的实际数据中,我需要分解大约70个不同的类,以分成单独的数据框,然后放入DT::datatableShiny中的选项卡,这真是一团糟。无论如何。

当我尝试这个:

    function_name <- function(x){
    assign(paste("gears_cars_cylinders", x, sep = "_"), filter(mtcars, cyl == x)) %>% 
        group_by(gear) %>% 
        summarise(number_of_cars …
Run Code Online (Sandbox Code Playgroud)

r dplyr

0
推荐指数
1
解决办法
879
查看次数

标签 统计

r ×7

r-faq ×2

assign ×1

attributes ×1

dataframe ×1

dplyr ×1

knitr ×1

list ×1

lvalue ×1

names ×1

r-markdown ×1

vector ×1