[R] plot factors with dots in R

Luigi Marongiu m@rong|u@|u|g| @end|ng |rom gm@||@com
Thu Aug 27 14:16:09 CEST 2020


Hello,
I have a dataframe as follows:
```
x = c("0 pmol", "10 pmol", "100 pmol", "1000 pmol")
y = c(0.9306, 1.8906, 2.2396, 2.7917)
df = data.frame(x, y)

> str(df)
'data.frame': 4 obs. of  2 variables:
 $ x: chr  "0 pmol" "10 pmol" "100 pmol" "1000 pmol"
 $ y: num  0.931 1.891 2.24 2.792
```
I would like to visualize the data with the classic dots (pch=16) but:
```
> plot(df$y ~ df$x)
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
```
which is right because x is not numeric, so I took the factor:
```
plot(df$y ~ factor(df$x)) # gives bars instead of dots
plot(df$y ~ factor(df$x), pch = 16) # this also
```
I tried to convert directly the dataframe:
```
df$x = lapply(df$x, factor)
> str(df)
'data.frame': 4 obs. of  2 variables:
 $ x:List of 4
  ..$ : Factor w/ 1 level "0 pmol": 1
  ..$ : Factor w/ 1 level "10 pmol": 1
  ..$ : Factor w/ 1 level "100 pmol": 1
  ..$ : Factor w/ 1 level "1000 pmol": 1
 $ y: num  0.931 1.891 2.24 2.792

> plot(r$y ~ r$x, pch = 16)
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
```
If I try to pass the number of levels:
```
plot(df$y ~ factor(df$x, 1:4), pch = 16) # this draw a boxplot with
all data on level 1

> df$x = lapply(df$x, factor(1:4))
Error in match.fun(FUN) :
  'factor(1:4)' is not a function, character or symbol
```

Since the transformation has given only one level (1), my questions are:
How do I tell R to use a dot instead of a line?
What is the correct way of setting factors?


-- 
Best regards,
Luigi



More information about the R-help mailing list