小编M--*_*M--的帖子

R中多列的每行排名

我用R来分析我的修身.不幸的是,我遇到了这个问题:

我想计算一个新变量,它计算许多变量中每行一个变量的等级.

例:

V1    V2    V3   NewVariable_V1 NewVariable_V2 NewVariable_V3
11    21    35   3              2               1
22    12    66   2              3               1
44    22    12   1              2               3
Run Code Online (Sandbox Code Playgroud)

有谁知道这是怎么做到的吗?我很乐意帮忙.

r rank

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

创建文件夹路径(如果不存在)(保存问题)

我有一个表格中的项目列表,如下所示:

在此输入图像描述

我的代码遍历每一行并对供应商进行分组,并将一些信息复制到每个供应商的工作簿中.

在这种情况下,有2个独特的供应商,因此将创建2个工作簿.

这有效.

接下来,我想将每个工作簿保存在特定的文件夹路径中.如果文件夹路径不存在,则应创建它.

这是这一段的代码:

'Check directort and save
                Path = "G:\BUYING\Food Specials\4. Food Promotions\(1) PLANNING\(1) Projects\Promo Announcements\" & .Range("H" & i) & "\KW " & .Range("A" & i) & "\"

                If Dir(Path, vbDirectory) = "" Then
                Shell ("cmd /c mkdir """ & Path & """")
                End If

                wbTemplate.SaveCopyAs Filename:=Path & file & " - " & file3 & " (" & file2 & ").xlsx"
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果目录存在,则保存两个工作簿,但如果目录不存在且必须创建,则仅保存一个工作簿.

请有人告诉我我哪里出错了?提前致谢

完整代码:

Sub Create()
'On Error GoTo Message
Application.DisplayAlerts = False
Application.ScreenUpdating = …
Run Code Online (Sandbox Code Playgroud)

excel vba

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

ggplot2 热图,图之间具有固定比例颜色条

我需要绘制 3 个不同的图,设置相同的比例范围颜色。我有 3 个具有不同值范围的矩阵。

例如:

range(matrixA) 
# 0.60 0.85  
range(matrixB) 
# 0.65 0.95  
range(matrixA) 
# 0.5 1.0
Run Code Online (Sandbox Code Playgroud)

我想为绘图填充相同的颜色。例如,对于差异图中的所有 0.8 值,如果在第一个图中 0.8 橙色,我希望不同图中的所有 0.8 值都是相同的橙色。

我此刻的问题是:

在第一个图中,最大值的颜色是红色,然后值 0.85 是红色。

在第二个图中,最大值为红色,但在这种情况下,最大值为 0.95,问题出现了。

我的代码:

mat.melted <- melt(matrixA)
colnames(mat.melted) <- c("p","c","v")
p <- ggplot(mat.melted, aes(x=c,y=p,fill=v) + 
         geom-tile() + 
         scale_fill_gradintn(limits = c(min(as.vector(matrixA)), max(as.vector(matrixA))), 
                             colors = c("yellow","orange","red"))
Run Code Online (Sandbox Code Playgroud)

r heatmap ggplot2 color-palette

8
推荐指数
1
解决办法
8177
查看次数

提取(计数)ggplot 特定区域内的点

我有以下数据。


x_plus <- c(1.3660254, 1.1123724, 1.0000000, 0.9330127, 0.8872983,
            0.8535534, 0.8273268, 0.8061862, 0.7886751, 0.7738613,
            0.6936492, 0.6581139, 0.6369306, 0.6224745, 0.6118034,
            0.5968246, 0.5866025, 0.5707107, 0.5612372, 0.5500000,
            0.5433013, 0.5387298, 0.5353553, 0.5306186, 0.5273861, 
            0.5193649, 0.5158114, 0.5122474, 0.5103510, 0.5086603,
            0.5050000, 0.5027386, 0.5008660)


x_minus <- c(-0.3660254, -0.1123724,  0.0000000,  0.0669873,  0.1127017,
             0.1464466,  0.1726732,  0.1938138,  0.2113249, 0.2261387,  
             0.3063508,  0.3418861,  0.3630694,  0.3775255,  0.3881966,
             0.4031754,  0.4133975,  0.4292893, 0.4387628,  0.4500000,
             0.4566987,  0.4612702,  0.4646447,  0.4693814,  0.4726139,
             0.4806351,  0.4841886, 0.4877526,  0.4896490,  0.4913397,
             0.4950000,  0.4972614,  0.4991340)


y <- c(1.50, 3.00, 4.50, 6.00, 7.50, 9.00, 1.05e+01, …
Run Code Online (Sandbox Code Playgroud)

curve r ggplot2

8
推荐指数
1
解决办法
428
查看次数

参数何时进入 aes() 内部或外部?

我正在阅读 Wickham 和 Grolemund 的“R for data science”中有关可视化的第一章。

我努力了:

 ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = "blue"))
Run Code Online (Sandbox Code Playgroud)

希望实现所有点都为蓝色的情节,但令我惊讶的是,它们都是红色的!阅读正确的代码来实现蓝点,在印刷版本的第11页或在线版本的第3.3节中,我发现它应该是

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
Run Code Online (Sandbox Code Playgroud)

事实上,他们指出,要手动设置美感,您必须在 aes() 函数之外,但在相应的 geom(此处为 geom_point())内给出它。为什么会这样呢?这种行为的确切解释是什么?事实上,对我来说,正确的语法将是第一个命令的语法似乎很自然。我想这个问题与层和/或变量的范围有关,但我只是无法掌握它的窍门。 .有人可以用勺子喂我吗?

编辑:抱歉,我没有做正确的作业:这只是相应部分末尾的文本本身中提出的练习 1...但我仍然无法得到答案。

r ggplot2

7
推荐指数
1
解决办法
3563
查看次数

如何在VBA中将字符串作为命令运行

我在下面有这个简单的VBA代码,我不知道为什么不工作.

Sub Run()
    test = "MsgBox" & """" & "Job Done!" & """"
    Application.Run test     
End Sub
Run Code Online (Sandbox Code Playgroud)

我想要做的是将VBA命令作为文本放入变量并将其作为命令运行.在这种情况下,我想运行MsgBox "Job Done!"和打印只是:

任务完成!

variables excel vba command eval

7
推荐指数
1
解决办法
8174
查看次数

将函数应用于 data.table [R] 中具有条件的每一列

我想对一列应用几个函数,但我想应用一些关于何时执行此操作的逻辑,在这种情况下,当另一列有一些 NA 时。为了说明,我将向iris数据集添加一些 NA并将其转换为 data.table:

library(data.table)

irisdt <- iris
## Prep some example data
irisdt[irisdt$Sepal.Length < 5,]$Sepal.Length <- NA
irisdt[irisdt$Sepal.Width < 3,]$Sepal.Width <- NA

## Turn this into a data.table
irisdt <- as.data.table(iris)
Run Code Online (Sandbox Code Playgroud)

如果我想申请max多个列,我会这样:

## Apply a function to individual columns
irisdt[, lapply(.SD, max), .SDcols = c("Petal.Length", "Petal.Width")]
#>    Petal.Length Petal.Width
#> 1:          6.9         2.5
Run Code Online (Sandbox Code Playgroud)

然而,在这种情况下,我想取出任何不是 NA 的行,Sepal.Length然后返回 max 和 min 以及我为 NA 子集的列的名称。下面是一种丑陋的实现方式,但希望能说明我所追求的:

## Here is what the table would look like
desired_table …
Run Code Online (Sandbox Code Playgroud)

r data.table

7
推荐指数
1
解决办法
287
查看次数

如何在 R 中的 Crosstalk() 中的 filter_select() 中设置默认值 - Plotly

我正在开发一个带有基于绘图的交互式图表的 rmarkdown HTML。虽然我可以完成图表中我想要的所有内容,但 crosstalk() 中的 filter_select() 不允许我在其中设置默认值。因此,我的图表在初始加载期间看起来笨拙且糟糕。

通过 R 中的串扰使用选择框在 R 绘图中选择默认值,使用静态 html 不闪亮

上面的讨论有一些输入,但我不知道如何在 crosstalk() 中进行这些编辑,因为我不熟悉 HTML/JavaScript。

r crosstalk

7
推荐指数
1
解决办法
3258
查看次数

在 R 中“分隔”列的更简洁选项(也许通过一些正则表达式)?

我有一个数据框,我想在其中分隔包含月份和年份的列:

\n
library(tidyverse)\ndf <- data.frame(\n  month_year = c("Januar / Janvier 1990", "Februar / F\xc3\xa9vrier 1990","M\xc3\xa4rz / Mars 1990")\n)\n\n# df\n#               month_year\n# 1  Januar / Janvier 1990\n# 2 Februar / F\xc3\xa9vrier 1990\n# 3       M\xc3\xa4rz / Mars 1990\n
Run Code Online (Sandbox Code Playgroud)\n

以下内容有效,但看起来有点笨拙:

\n
df %>% \n  separate(month_year, c("month","nothing","nothing2", "year"), sep = " ") %>%\n  select(-starts_with("nothing"))\n\n#     month year\n# 1  Januar 1990\n# 2 Februar 1990\n# 3    M\xc3\xa4rz 1990\n
Run Code Online (Sandbox Code Playgroud)\n

是否有更简洁的选择来达到相同的结果?

\n

r tidyr

7
推荐指数
2
解决办法
150
查看次数

计算 R dplyr 中一个数据帧中的字符串出现在另一个数据帧中的次数

我有两个数据框,如下所示:

df1 <- data.frame(reference=c("cat","dog"))
print(df1)
#>   reference
#> 1       cat
#> 2       dog
df2 <- data.frame(data=c("cat","car","catt","cart","dog","dog","pitbull"))
print(df2)
#>      data
#> 1     cat
#> 2     car
#> 3    catt
#> 4    cart
#> 5     dog
#> 6     dog
#> 7 pitbull

Run Code Online (Sandbox Code Playgroud)

由reprex 包于 2021 年 12 月 29 日创建(v2.0.1)

我想找出 df1 中的单词 cat 和 dogs 在 df2 中出现了多少次。我希望我的数据看起来像这样

animals   n
cat       1
dog       2
Run Code Online (Sandbox Code Playgroud)

任何帮助或指导表示赞赏。我的参考清单很大。我试图 grep 他们中的每一个,但需要时间。

感谢您的时间。节日快乐

r stringr dplyr

7
推荐指数
2
解决办法
383
查看次数

标签 统计

r ×8

ggplot2 ×3

excel ×2

vba ×2

color-palette ×1

command ×1

crosstalk ×1

curve ×1

data.table ×1

dplyr ×1

eval ×1

heatmap ×1

rank ×1

stringr ×1

tidyr ×1

variables ×1