3

I looked in the internet but I didn't find a easy and clean solution.

This is a piece of my df:

structure(list(ID = structure(c(12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L), .Label = c("B0F", "B12T", "B1T", "B21T", 
"B22F", "B26T", "B2F", "B33F", "B3F", "B4F", "B7F", "P1", "P21", 
"P24", "P25", "P27", "P28", "P29"), class = "factor"), Data = structure(c(9646, 
9836, 9938, 10043, 10134, 10203, 10302, 10354, 10421, 10528), class = "Date"), 
    T = c(11.3, 9.7, 9.8, 10.5, 9.9, 10, 10, 10.1, 10, 10), ph = c(6.8, 
    6.9, 7.1, 6.9, 7, 6.93, 7.01, 6.9, 7.01, 6.84), EC = c(1840L, 
    1060L, 940L, 760L, 820L, 1038L, 1035L, 839L, 767L, 433L)), .Names = c("ID", 
"Data", "T", "ph", "EC"), row.names = c(NA, 10L), class = "data.frame") 

And these are the variables:

str(df)
'data.frame':   10 obs. of  5 variables:
 $ ID  : Factor w/ 18 levels "B0F","B12T","B1T",..: 12 12 12 12 12 12 12 12 12 12
 $ Data: Date, format: "1996-05-30" "1996-12-06" "1997-03-18" ...
 $ T   : num  11.3 9.7 9.8 10.5 9.9 10 10 10.1 10 10
 $ ph  : num  6.8 6.9 7.1 6.9 7 6.93 7.01 6.9 7.01 6.84
 $ EC  : int  1840 1060 940 760 820 1038 1035 839 767 433

What I need is a new df with the original values of the numerical columns (so T, pH and EC). I know this could be done with a simple columns extraction (new_df=df[,3:5]) but I have a lot of df on which this operation should be done.

Thanks

0

1 Answer 1

9

How about

new_df <- df[sapply(df,is.numeric)]

?

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.