我有这样的数据框
A B value
1 1 0.123
2 1 0.213
3 1 0.543
1 2 0.313
2 2 0.123
3 2 0.412
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个函数,将该数据帧移动一个值.例如:
如果shift的值为1,则数据帧将变为:
A B value
3 2 0.412
1 1 0.123
2 1 0.213
3 1 0.543
1 2 0.313
2 2 0.123
Run Code Online (Sandbox Code Playgroud)
等等...
功能应该是这样的.
shift<-function(dataframe,shiftvalue)
Run Code Online (Sandbox Code Playgroud)
是否有任何简单的方法在R中执行此操作而不进入很多循环?
我有一个包含这样的数据的数据框:
V1 V2 V3
1 2 0.34
1 3 0.31
1 4 0.12
1 5 0.12
Run Code Online (Sandbox Code Playgroud)
数据框更大,但这是一个例子.
我想获取具有最低20%V3的数据帧的子集.
怎么做到这一点?
感谢帮助
我有以下C#代码.
double a = 0;
double d = 0;
double er = 0;
int N = numbers.Length;
a=(N*N/6) + N
d=(N-(N/2))*2
for(int aa=1;aa<=data.length;aa++)
{
er=((10-aa)*(-a\) + d - (numbers[aa,12]))^2;
}
Run Code Online (Sandbox Code Playgroud)
数字是这种格式的双数组:
1 0.3232 0.361 0.5214 0.233 -0.7678
2 0.3451 0.321 0.134 0.224 -0.706268
3 0.3123 0.351 0.155 0.523 -0.70626
4 0.36 0.312 0.216 0.233 -0.6453351
5 0.269 0.3331 0.162 0.224 -0.584962
Run Code Online (Sandbox Code Playgroud)
但是在运行代码时,我在这一行上遇到了这个错误:
er=((10-aa)*(-a\) + d - (numbers[aa,12]))^2;
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我在这里的前一个问题中有这个函数
shift <- function(d, k) rbind( tail(d,k), head(d,-k), deparse.level = 0 )
Run Code Online (Sandbox Code Playgroud)
此函数将数据框d旋转K,这意味着它将从数据框的末尾开始占用K行并将它们放在顶部.
我想创建相同的函数(使用相同的语言),但不使用R预制函数(head,tail,...),但只使用编程基础.(for,...)
怎么做到这一点?