我有一个数据框,包含(在随机位置)"foo"
我要用a替换的字符值(比如说)NA
.
在整个数据框架中这样做的最佳方法是什么?
我想在dataframe(df
)中添加一个变量(列),在每行中包含第2到第26列的该行的最大值.
对于第一行,代码将是:
df$max[1] <- max(df[1,2:26])
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来概括第1行到第865行.如果我给:
df$max[1:865] <- max(df[1:865, 2:26])
Run Code Online (Sandbox Code Playgroud)
我得到变量所有行的总体最大值df$max
.
我在iPython中有一个包含四个美元符号的降价单元格.iPython将美元符号之间的任何内容解释为MathJax表达式,这不是我想要的.我如何逃脱美元符号?使用反斜杠转义它们会阻止MathJax进入,但反斜杠会在编译的Markdown中显示.
关于如何获得美元符号的任何想法?
谢谢
我有一个矢量列表,它们是不等长度的时间序列.我的最终目标是在图表中绘制时间序列ggplot2
.我想我最好首先合并数据帧中的向量(其中较短的向量将使用NA扩展),这也是因为我想以表格格式(例如.csv)导出数据以供其他人阅读.
我有一个包含所有向量名称的列表.列标题可以由第一个向量设置,这是最长的.例如:
> mylist
[[1]]
[1] "vector1"
[[2]]
[1] "vector2"
[[3]]
[1] "vector3"
Run Code Online (Sandbox Code Playgroud)
等等
我知道要走的路是使用Hadley的plyr
包但我想问题是我的列表包含向量的名称,而不是向量本身,所以如果我输入:
do.call(rbind, mylist)
Run Code Online (Sandbox Code Playgroud)
我得到一个包含我想要合并的dfs名称的单列df.
> do.call(rbind, actives)
[,1]
[1,] "vector1"
[2,] "vector2"
[3,] "vector3"
[4,] "vector4"
[5,] "vector5"
[6,] "vector6"
[7,] "vector7"
[8,] "vector8"
[9,] "vector9"
[10,] "vector10"
Run Code Online (Sandbox Code Playgroud)
等等
即使我自己创建了一个包含对象的列表,我也会获得一个空的数据帧:
mylist <- list(vector1, vector2)
mylist
[[1]]
1 2 3 4 5 6 7 8 9 10 11 12
0.1875000 0.2954545 0.3295455 0.2840909 0.3011364 0.3863636 0.3863636 0.3295455 0.2954545 0.3295455 0.3238636 0.2443182 …
Run Code Online (Sandbox Code Playgroud) 我无法在R中找到撤销命令的效果(既不是R的简介也不是Nuts的R).在处理交互式图形时,我特别感兴趣的是撤消/删除.
你建议采用什么方法?
一个非常简单的问题:
我正在使用文本编辑器编写和运行我的R脚本,以使它们可重现,正如SO的几个成员所建议的那样.
这种方法对我来说非常有效,但我有时必须执行昂贵的操作(例如,read.csv
或者reshape
在2M行数据库上),我最好在R环境中缓存,而不是每次运行脚本时重新运行(这是通常很多次我进步并测试新的代码行).
有没有办法缓存脚本在某一点上的作用,所以每次我只运行增量代码行(就像我通过交互运行R一样)?
谢谢.
我将计数模型拟合到实际数据的矢量,现在想要将实际和预测绘制为分组(躲闪)条形图.由于这是计数模型,因此数据是离散的(X = x从0到317).由于我正在拟合模型,因此我只有已经列出的预测值数据.
以下是我原始数据框的外观:
actual predicted
1 3236 3570.4995
2 1968 1137.1202
3 707 641.8186
4 302 414.8763
5 185 285.1854
6 104 203.0502
Run Code Online (Sandbox Code Playgroud)
我用ggplot2转换了要绘制的数据:
melted.data <- melt(plot.data)
melted.data$realization <- c(rep(0:317, times=2))
colnames(melted.data)=c('origin','count','realization')
Run Code Online (Sandbox Code Playgroud)
所以我的数据框现在看起来像这样:
head(melted.data)
origin count realization
1 actual 3236 0
2 actual 1968 1
3 actual 707 2
4 actual 302 3
5 actual 185 4
6 actual 104 5
> tail(melted.data)
origin count realization
631 predicted 1.564673e-27 312
632 predicted 1.265509e-27 313
633 predicted 1.023552e-27 314
634 …
Run Code Online (Sandbox Code Playgroud) 我在Redshift.鉴于以下数据:
CREATE TABLE test (
id INT,
val1 INT,
val2 INT
);
INSERT INTO test VALUES
(1, 0, NULL),
(2, 0, NULL),
(3, 13, 1),
(4, 0, NULL),
(5, 0, NULL),
(6, 0, NULL),
(7, 0, NULL),
(8, 21, 2),
(9, 0, NULL),
(10, 143,3)
;
Run Code Online (Sandbox Code Playgroud)
我想用下面的第一个非空值填充缺失的val2值,例如
INSERT INTO results VALUES
(1, 0, 1),
(2, 0, 1),
(3, 13, 1),
(4, 0, 2),
(5, 0, 2),
(6, 0, 2),
(7, 0, 2),
(8, 21, 2),
(9, 0, 3),
(10,143,3)
; …
Run Code Online (Sandbox Code Playgroud) 我想在字符向量上返回regexp匹配的逻辑向量,但是匹配或%in似乎不支持正则表达式,例如:
> x <- c("Bill", "Brett", "Jane")
> grep("^B", x)
[1] 1 2
> x %in% "^B"
[1] FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
我想这回来
[1] TRUE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
想法?
谢谢,
罗伯托
我需要得到一个累积变量的洛伦兹曲线图作为观测数量的函数.我希望两个轴都以百分比显示(例如,观察是买家的数量,y变量是他们购买的数量,买家已经按降序排列,我想得到的图表是"前10名" %购买者购买了总购买量的90%").我的数据集是几百万次观察.
做这个的最好方式是什么?子问题:
如果我需要为总观测值的分位数添加两个变量并且总买入$(以便使用它们来绘制),那么返回行号的对象是什么?我试过了:
user_quantile <- row(df)/nrow(df)
但我得到一个相同列的矩阵(user_quantile.1,user_quantile.2),其中我只需要一列.
是否有任何方法可以跳过添加百分比作为变量,只有轴数值?
情节可以达到很多点,而不是我需要的线.什么是最小化计算工作并获得漂亮图表的最佳方法?
谢谢.