Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用ddply代替特定类别的循环减法_R_Loops_Plyr - Fatal编程技术网

R 使用ddply代替特定类别的循环减法

R 使用ddply代替特定类别的循环减法,r,loops,plyr,R,Loops,Plyr,我有一个包含两个数字列的数据集 示例数据集: X = c(-1:-20) Y=c(11:30) df=as.data.frame(cbind(X,Y)) 我的数据集看起来像: X Y 1 -1 11 2 -2 12 3 -3 13 4 -4 14 5 -5 15 6 -6 16 7 -7 17 8 -8 18 9 -9 19 10 -10 20 11 -11 21 12 -12 22 13 -13 23 14 -14 24 15 -15 25 1

我有一个包含两个数字列的数据集

示例数据集:

X = c(-1:-20)
Y=c(11:30)
df=as.data.frame(cbind(X,Y))
我的数据集看起来像:

     X  Y
1   -1 11
2   -2 12
3   -3 13
4   -4 14
5   -5 15
6   -6 16
7   -7 17
8   -8 18
9   -9 19
10 -10 20
11 -11 21
12 -12 22
13 -13 23
14 -14 24
15 -15 25
16 -16 26
17 -17 27
18 -18 28
19 -19 29
20 -20 30
我正在使用一个循环,它允许我将100减去-10以下的值

for (i in 1:length(df[,1]))
{
  if ((df$X[i]< c(-10.0)) == T)
  {df$X[i] = df$X[i] - 100}else
  {}
}
for(1中的i:长度(df[,1]))
{
如果((df$X[i]
我的“真实”数据集包含300000行,循环非常耗时。这就是为什么我一直在寻找一个应用函数来完成这项工作

library(plyr)
TAB1=ddply(df,.(X),function (x) x[(df$x)< c(-10.0)]-100)
库(plyr)
TAB1=ddply(df,.(X),函数(X)X[(df$X)
但它根本不起作用


感谢您的帮助。

不要将
ddply
用于此任务。你不需要它。这些操作是矢量化的

index <- df$X < -10
df$X[index] <- df$X[index] - 100
索引