[R] ggplot2 axis label German formatting

2014-01-12 Thread Stageexp
Hi all I have a problem with formatting my ggplot2 graph.

Let's look at this example:
library(ggplot2)
library(scales)
x - rnorm(100, mean=100, sd = 1) * 100
y - rnorm(100, mean=100, sd = 1) * 100
df - data.frame(x,y)

p.new - ggplot(df,aes(x,y)) +
  geom_point()
print(p.new)

This is showing the axis labels in scientific notation. Adding

p.new + scale_x_continuous(labels = comma)

will show the numbers correctly, BUT: In Germany, we use decimal points and
commas exactly the other way around, for example, we write 5,3% and 100.000.

I only found the options comma, dollar and percent for labels. Is
there any way in which I can show the numbers separated by decimal points?


Kind Regards



--
View this message in context: 
http://r.789695.n4.nabble.com/ggplot2-axis-label-German-formatting-tp4683477.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


Re: [R] ggplot2 axis label German formatting

2014-01-12 Thread Stageexp
Works like a charm! Thank you so much!

One more comment: I either had to add a second input parameter ... to
gcomma or remove the ... from the code, otherwise I got an error.



--
View this message in context: 
http://r.789695.n4.nabble.com/ggplot2-axis-label-German-formatting-tp4683477p4683486.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


Re: [R] Apply function to one specific column / Alternative to for loop

2013-11-17 Thread Stageexp

Hi,
Try:
indx - grep(Test,test_df[,1])  ##assuming that there is some pattern
 res - within(test_df[-indx,],titel - rep(test_df$titel[indx],
diff(c(indx,nrow(test_df)+1))-1))

## If you need to change the class

res[] - lapply(res,function(x) if(any(grepl([[:alpha:]],x)))
as.character(x) else as.numeric(as.character(x)))


##Using data.frame(cbind()), etc. creates 


A.K.


This option worked great for me! I knew there was a nicer and much faster
way to solve this. One thing I already learned about R: Never use for-loops,
there is always a better way :-)



--
View this message in context: 
http://r.789695.n4.nabble.com/Apply-function-to-one-specific-column-Alternative-to-for-loop-tp4680566p4680621.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


[R] Apply function to one specific column / Alternative to for loop

2013-11-16 Thread Stageexp
Hi guys, I am a total newbie to R, so I hope this isn't a totally dumb
question. I have a dataframe with a title in one row and the corresponding
values in the next rows. Let's take this example: 

test_df - data.frame(cbind(titel = , x = 4:5, y = 1:2))
test_df = rbind(cbind(titel=1.Test, x=, y=), test_df,
cbind(titel=2.Test, x=, y=), test_df, cbind(titel=3.Test, x=,
y=), test_df)

test_df
   titel x y
1 1.Test
24 1
35 2
4 2.Test
54 1
65 2
7 3.Test
84 1
95 2

What I want to have is:
   titel x y
2 1.Test 4 1
3 1.Test 5 2
5 2.Test 4 1
6 2.Test 5 2
8 3.Test 4 1
9 3.Test 5 2

In my example, the title is in every third line, but in my real data there
is no pattern. Each title has at least one line but can have x lines.

I was able to solve my problem in a for loop with the following code:
test_df$titel - as.character(test_df$titel)
for (i in 1:nrow(test_df))
{
  if (nchar(test_df$titel[i])==0){
test_df$titel[i]=test_df$titel[i-1]
  }
}
test_df - subset(test_df,test_df$x!=)


The problem is, I have a lot of data and the for loop is obviously very
slow. Is there a more elegant way to achieve the same? I think I have to use
the apply function, but I don't know how to use it with just one column.




--
View this message in context: 
http://r.789695.n4.nabble.com/Apply-function-to-one-specific-column-Alternative-to-for-loop-tp4680566.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.