假设我有一个数据框,其中R
包含两个变量,我将其称为A
和B
。我想检查这两个变量是否处于一对一映射中)。例如,考虑以下数据框:
DF <- data.frame(A = c(0,2,0,1,2,1,0,1,1,1),
B = c('H','M','H','W','M','W','H','W','W','W'));
DF;
A B
1 0 H
2 2 M
3 0 H
4 1 W
5 2 M
6 1 W
7 0 H
8 1 W
9 1 W
10 1 W
Run Code Online (Sandbox Code Playgroud)
A
在这个数据框中,我们可以通过检查看到和之间存在一一对应关系B
(与0 = H
、1 = W
和2 = M
)。我想找到一种方法来使用适当的R
代码对更大的数据框执行此操作,而不需要我检查每个元素。代码应该生成一个简单明了的声明,说明指定变量之间是否存在一对一的关系;一个简单的TRUE
/FALSE
输出应该是理想的。
我正在开发一个项目,需要从特定类型的数据框架自动生成数据电子表格。我在这里阅读了有关如何执行此操作的有用解释,并基于此解释,我R.Studio
使用包(版本 0.5.7)在(专业版本 1.1.383)中创建了一些代码xlsx
。我的代码从现有数据框架生成数据电子表格TABLE
。这是我正在使用的代码,其中使用模拟数据框来创建可重现的示例:
#In this code we create a mock data frame called TABLE
#In practice we have a larger data frame with data that is not reproduced here
TABLE <- data.frame(Var1 = c(1, 6, 3, 9, 10, 4, 3, 5, 2, 2),
Var2 = c(18.1, 14.2, 12.0, 21.3, 33.4, 16.0, 15.4, 8.6, 6.7, 12.9),
Var3 = c(0, 1, 1, 0, 1, 1, 0, 0, 0, 0));
#Create workbook, sheet, columns and …
Run Code Online (Sandbox Code Playgroud) 我正在研究一些编程问题,我必须在标准空间和对数空间之间转换概率。为此,我试图找出输入为对数概率(即非正数)的计算中浮点误差的最大绝对误差。R
log(exp(...))
目前,我已经通过使用网格搜索计算了答案(请参阅下面的代码和绘图),但我不确定我计算的值是否正确。(我检查了一些其他范围,但图中显示的范围似乎获得了最大绝对误差。)
#Set function for computing floating-point error of log(exp(...))
fp.error <- function(x) { abs(log(exp(x)) - x) }
#Compute and plot floating-point error over a grid of non-negative values
xx <- -(0:20000/10000)
ff <- fp.error(xx)
plot(xx, ff, col = '#0000FF10',
main = 'Error in computation of log(exp(...))',
xlab = 'x', ylab = 'Floating-Point Error')
#Compute maximum floating-point error
fp.error.max <- max(ff)
fp.error.max
[1] 1.110223e-16
Run Code Online (Sandbox Code Playgroud)
.Machine$double.eps
根据此分析,我估计的最大绝对误差是(即)的一半2.220446e-16
。我不确定这是否有理论上的原因,或者我是否得到了错误的答案。
问题:有什么方法可以确定这是否真的是该计算的最大浮点误差?是否有任何理论方法来计算最大值,或者这种网格搜索方法是否足够?
我创建了一个函数,R
它采用固定的数据框,并用于dplyr
为我提供按所选参数变量分组的汇总统计数据(例如,特定变量的平均值)。这是一些显示玩具数据框和我的功能的代码:
#Create data frame for analysis
DF <- data.frame(Type1 = c(0,0,1,1,0,1,1,0,1,0,1,1,1,0),
Type2 = c(1,1,1,1,1,1,2,2,2,2,3,3,3,3),
Output = c(4,2,7,5,1,1,7,8,3,2,5,4,3,6));
#Inspect the data-frame
DF;
Type1 Type2 Output
1 0 1 4
2 0 1 2
3 1 1 7
4 1 1 5
5 0 1 1
6 1 1 1
7 1 2 7
8 0 2 8
9 1 2 3
10 0 2 2
11 1 3 5
12 1 3 4
13 1 3 3 …
Run Code Online (Sandbox Code Playgroud) 在我的数据分析中,R
我有时会使用数据输出到Excel文件write.xlsx
.这些文件需要受密码保护,目前我这样做是通过使用Excel打开未受保护的文件,然后使用添加密码File - Protect Workbook - Encrypt with Password
.
有没有办法直接执行此操作,R
以便我不必打开Excel文件并手动添加密码?(我想密码保护整个工作簿,而不仅仅是一张表.)
我正在做一些编码,R
我正在处理一些数据帧被编码为单个字符串的情况,并且有必要能够从字符串中恢复数据帧。字符串采用以下形式:
|Carrot^14|Cucumber^3|Potato^8|
Run Code Online (Sandbox Code Playgroud)
分隔符分隔|
数据框的行,分隔符^
分隔带有字符值的列和带有数值的列。(为了简化问题,请注意这些符号仅作为分隔符出现 --- 它们永远不会出现在数据框中的值中。)与此字符串对应的数据框将是:
Vegetable Quantity
"Carrot" 14
"Cucumber" 3
"Potato" 8
Run Code Online (Sandbox Code Playgroud)
我希望能够解码一个字符串以提取它编码的数据帧。我知道这将需要某种regexp
查询,但我不太确定该怎么做。我也不确定数据框和单个字符串之间的这种对应关系是否具有任何特定名称,可以引导我了解有关该技术的更多信息。
我的问题:这种从数据框到单个字符串(并返回)的编码是否具有特定名称?如何解码中的字符串R
?
假设我们想要使用 R ggplot 生成一个条形图,显示某个类别变量在另一个类别变量中的百分比。下面是 R 中的一个小数据框和一些代码,用于获得我想要的漂亮的条形图。
MYDATA <- data.frame(Region = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5),
Sex = c("M", "F", "M", "F", "M", "F", "M", "F", "M", "F"),
Count = c(185, 130, 266, 201, 304, 283, 102, 60, 55, 51))
library(ggplot2)
ggplot(data = MYDATA, aes(x = Region, y = Count, fill = Sex)) +
geom_bar(position = "fill", stat = 'identity') +
scale_y_continuous(labels = scales::percent) +
scale_fill_manual(values = c("Maroon1", "RoyalBlue1")) +
ggtitle("Figure 1: Sex breakdown by Region") …
Run Code Online (Sandbox Code Playgroud) 在进行回归建模时,为模型中的解释变量生成附加变量图很有用,以检查与响应变量的假定关系是否适合数据。avPlots
incar
包中的函数R
接受模型输入,并使用基本图形系统生成添加变量图的网格。这个函数对用户非常友好,只要你需要做的就是将模型对象作为参数放入,它会自动为每个解释变量生成所有添加的变量图。这个绘图矩阵包含所有需要的信息,但不幸的是,绘图看起来很糟糕,因为它使用基本图形系统而不是ggplot2
包裹。例如,使用此处找到的数据(作为文件下载Trucking.csv
)此处是该avPlots
函数的输出。
#Load required libraries
library(car);
#Import data, fit model, and show AV plots
DATA <- read.csv('Trucking.csv');
MODEL <- lm(log(PRICPTM) ~ DISTANCE + PCTLOAD + ORIGIN + MARKET + DEREG + PRODUCT,
data = DATA);
avPlots(MODEL);
Run Code Online (Sandbox Code Playgroud)
问题:是否有等效函数ggplot2
可以为模型生成每个添加变量图的矩阵,但具有“更漂亮”的图?是否可以生成这些图,然后使用标准ggplot
语法自定义它们?