[R] Substitute problem

Chris82 rubenbauar at gmx.de
Thu Oct 23 19:52:25 CEST 2008


Thanks! Works fine!



jholtman wrote:
> 
> Had the test wrong in the last one'  try this:
> 
>> x
>   X     value     row     col ID         n
> 1 1 11.105009 5511625 3463000  1 -619.1125
> 2 2 10.324148 5499625 3465000  0    1.0000
> 3 3  8.744591 5503625 3475000  0    1.0000
> 4 4  9.523473 5494625 3475000  3 -578.2354
> 5 5  8.856097 5507625 3480000  4 -619.1125
> 6 6  8.636881 5514625 3497000  5 -140.8012
>> id_max <- 5
>> id_change <- (x$ID == 0) & (x$n > 0)
>> x$ID[id_change] <- cumsum(id_change)[id_change] + id_max
>> x
>   X     value     row     col ID         n
> 1 1 11.105009 5511625 3463000  1 -619.1125
> 2 2 10.324148 5499625 3465000  6    1.0000
> 3 3  8.744591 5503625 3475000  7    1.0000
> 4 4  9.523473 5494625 3475000  3 -578.2354
> 5 5  8.856097 5507625 3480000  4 -619.1125
> 6 6  8.636881 5514625 3497000  5 -140.8012
>>
> 
> 
> On Wed, Oct 22, 2008 at 9:06 AM, Chris82 <rubenbauar at gmx.de> wrote:
>>
>> hello R users,
>>
>> I didn't find a solution for a special problem.
>> I have two dataframes.
>>
>> dataframe1:
>>
>>  X        value         row             col                       ID
>>  1  8.973498062         5512625         3460000         1
>>  2 11.656658570         5501625         3464000         2
>>  3 11.121777570         5495625         3473000         3
>>  4  9.310465964         5508625         3477000         4
>>  5  8.883483845         5515625         3496000         5
>>
>>
>> dataframe2:
>>
>>  X        value         row             col               ID                  
>> n
>>  1 11.105009400         5511625 3463000                   1            
>> -619.112472616732
>>  2 10.324148150         5499625 3465000                     0          
>> 1.000000000000
>>  3  8.744590903         5503625 3475000                   0            
>> 1.000000000000
>>  4  9.523473123         5494625 3475000                   3         
>> -578.235381588725
>>  5  8.856097133         5507625 3480000                     4       
>> -619.112472616732
>>  6  8.636881453         5514625 3497000                   5         
>> -140.801233634174
>>
>> Now I want if column "n" in dataframe2 is greater than 0 column "ID"
>> which
>> is 0 is now maxium column "ID" in dataframe1 +1 and the for the second 0
>> maximum + 2
>>
>> the finished dataframe2 should look like this:
>>
>>  X        value         row             col                       ID          
>> n
>>  1 11.105009400         5511625 3463000                   1      
>> -619.112472616732
>>  2 10.324148150         5499625 3465000                     6    
>> 1.000000000000
>>  3  8.744590903         5503625 3475000                   7      
>> 1.000000000000
>>  4  9.523473123         5494625 3475000                   3    
>> -578.235381588725
>>  5  8.856097133         5507625 3480000                     4  
>> -619.112472616732
>>  6  8.636881453         5514625 3497000                   5    
>> -140.801233634174
>>
>> My idea was below:
>>
>> lastrow1 <- length(dataframe2[,1])
>> lastrow2 <- length(dataframe1[,1])
>> anz <- sum(dataframe2[,6] > 0)
>>
>>
>> for (k in 1:anz){
>> for (i in 1:lastrow1){
>> for (j in 1:lastrow2){
>> if (dataframe2[i,6] > 0){
>> dataframe2[i,5] <- max(dataframe1[j,5])+(k-k+1)
>> }
>> }
>> }
>> }
>>
>>
>> but the result is:
>>
>>  X        value         row             col                       ID                  
>> n
>>  1 11.105009400         5511625 3463000                   1      
>> -619.112472616732
>>  2 10.324148150         5499625 3465000                     6     
>> 1.000000000000
>>  3  8.744590903         5503625 3475000                   6       
>> 1.000000000000
>>  4  9.523473123         5494625 3475000                   3    
>> -578.235381588725
>>  5  8.856097133         5507625 3480000                     4  
>> -619.112472616732
>>  6  8.636881453         5514625 3497000                   5    
>> -140.801233634174
>>
>> R gives me the right value in the second row of "ID" with "6" but the
>> third
>> row of "ID" is also "6" but should be "7"
>>
>> any ideas?
>>
>> thanks!
>> --
>> View this message in context:
>> http://www.nabble.com/Substitute-problem-tp20110333p20110333.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
> 
> 
> 
> -- 
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
> 
> What is the problem that you are trying to solve?
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/Substitute-problem-tp20110333p20136308.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list