我想在 R 中滞后整个数据帧。
在Python中,这是很容易做到这一点,利用shift()功能(例如:df.shift(1))
但是,我找不到像shift()R中的 Pandas那样简单易行的方法。
我怎样才能做到这一点?
> x = data.frame(a=c(1,2,3),b=c(4,5,6))
> x
a b
1 1 4
2 2 5
3 3 6
Run Code Online (Sandbox Code Playgroud)
我想要的是,
> lag(x,1)
>
a b
1 NA NA
2 1 4
3 2 5
Run Code Online (Sandbox Code Playgroud)
有什么好主意吗?
我有一个data.table dt如下。
df <- data.frame(t1 = rep(0,5), t3 = c(12, 5, 8,9, 5), t7= c(25, 48, 7, 9, 14))
dt <- setDT(df)
dt
t1 t3 t7
1: 0 12 25
2: 0 5 48
3: 0 8 7
4: 0 9 9
5: 0 5 14
Run Code Online (Sandbox Code Playgroud)
我想获得各列的累计总和。我只是把它跨行。如何做到这一点data.table。
dt[, 1:3 := cumsum(dt)]
dt
t1 t3 t7
1: 0 12 25
2: 0 17 73
3: 0 25 80
4: 0 34 89
5: 0 39 103
Run Code Online (Sandbox Code Playgroud)
所需的输出如下: …
我有一个与帖子如何着色滑块 (sliderInput)相关的问题?.
是否可以根据所选值使滑块输入更改其颜色?
我想让用户输入 0 到 10 之间的值。但是,有一个推荐的范围,比如 4 到 8。因此,如果用户选择 4 到 8 之间的值,滑块颜色应该是绿色8,但如果选择了超出推荐范围的值,它应该变为橙色(或红色)。
任何帮助实现这一点将不胜感激。
我被教导使用公式运行ANOVA:aov(因变量〜自变量,数据集)
但我正在努力解决如何为特定数据集运行ANOVA,因为它分为三列,每列包含一个值.三列被指定为新生儿,青少年和成年人(这是仓鼠年龄),每列中的值代表血压值.我需要进行一项测试,以确定血压和年龄之间是否存在关系.
这是R中的数据:
> hamster
Newborn adolescent adult
1 108 110 105
2 110 105 100
3 90 100 95
4 80 90 85
5 100 102 97
6 120 110 105
7 125 105 100
8 130 115 110
9 120 100 95
10 130 120 115
11 145 130 125
12 150 125 120
13 130 135 130
14 155 130 125
15 140 120 115
Run Code Online (Sandbox Code Playgroud)
混淆是因为因变量是每列中的那些值^
#include <memory>
class Data;
std::unique_ptr<Data> p;
//class Data{}; // not working without this
int main(){}
Run Code Online (Sandbox Code Playgroud)
使用g ++ - 5编译此代码会出现这样的错误:
将'sizeof'无效应用于不完整类型'数据'
有人可以解释为什么我取消注释第四行编译会成功吗?据我所知,在第3行编译器没有关于类型数据的完整信息.我们这行只有前瞻性声明.真实声明发生在第4行.
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
void print_raw(RawVector x) {
for (int i = 0; i < x.size(); i++) {
Rcout << x[i] << " ";
}
Rcout << std::endl;
}
/*** R
x <- as.raw(0:10)
print(x)
print_raw(x)
*/
Run Code Online (Sandbox Code Playgroud)
我希望Rcpp以与R相同的方式打印"raw"类型的值.可能吗?使用当前代码,我只得到一个空行.
我有一个足球队数据集,如下所示:
Home_team Away_team Home_score Away_score
Arsenal Chelsea 1 3
Manchester U Blackburn 2 9
Liverpool Leeds 0 8
Chelsea Arsenal 4 1
Run Code Online (Sandbox Code Playgroud)
我想对所涉及的球队进行分组,无论哪支球队在主场和客场比赛。例如,如果切尔西对阵阿森纳,无论比赛是在切尔西还是在阿森纳,我都希望新列“teams_involved”是阿森纳 - 切尔西。我的猜测是这样做的方法是按字母顺序将这些团队添加到新列中,但我不知道该怎么做。
期望的输出:
Home_team Away_team Home_score Away_score teams_involved
Arsenal Chelsea 1 3 Arsenal - Chelsea
Manchester U Blackburn 2 9 Blackburn - Manchester U
Liverpool Leeds 0 8 Leeds - Liverpool
Chelsea Arsenal 4 1 Arsenal - Chelsea
Run Code Online (Sandbox Code Playgroud)
我之所以要这样做,是因为我可以看到每支球队对特定球队的胜利次数,无论比赛地点如何。
这是我的数据的一个例子.
ll <- list(
ll1 = list(Mi = 1:4,
Mj = 10:13,
dn = "l1"),
ll2 = list(Mi = 5:8,
Mj = 14:17,
dn = "l2"))
> str(ll)
List of 2
$ ll1:List of 3
..$ Mi: int [1:4] 1 2 3 4
..$ Mj: int [1:4] 10 11 12 13
..$ dn: chr "l1"
$ ll2:List of 3
..$ Mi: int [1:4] 5 6 7 8
..$ Mj: int [1:4] 14 15 16 17
..$ dn: chr "l2"
Run Code Online (Sandbox Code Playgroud)
我正在尝试将每个Mi,每个Mj和每个dn组合在一起.因此最终结果将是3个向量:1个组合Mi,1个组合Mj,以及1个组合dn.即,Mi的最终结果将是类似的 …
我正在尝试 H.Wickham 在 R 书中的钻石数据集。在 x = 克拉的钻石的默认 geom_histogram 中,binwidth 为 0.5,但 bin 1 从 -0.25 开始,即使克拉的最低值为 0.2。为什么会这样?附上图片和代码作为上下文。谁能帮忙解释一下。谢谢。
##geom_histogram
geom_histogram(mapping=aes(x = carat),binwidth = 0.5)
summary(diamonds)
##dplyr to get count of cut[![enter image description here][1]][1]
diamonds %>%
count(cut_width(carat,0.5))
Run Code Online (Sandbox Code Playgroud)