Re: [R] Selecting initial numerals
On Tue, Oct 13, 2009 at 6:48 PM, PDXRugger j_r...@hotmail.com wrote: II just want to create a new object with the first two numerals of the data. Not sure why this isnt working, consider the following: EmpEst$naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399, 541613, 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) EmpEst$naics2-formatC(EmpEst$naics %% 1e2, width=2, flag=, mode =integer) #RESULT:Warning message: #In Ops.factor(EmpEst$naics, 100) : %% not meaningful for factors Wild guess : you get this warning EmpEst$naics is a factor? Quite some errors and warnings mean mostly what they say. If you see similar errors or warnings, please use the function str() first to check your data structure. For example : str(EmpEst$naics) You should also make sure you provide us with self contained, reproducible code. As we don't have the dataframe EmpEst, I cannot run the code you sent. If I change it, I don't get the error. Below a few code snippets to illustrate how the problem arises, and how to get it away : naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) naics2-formatC(naics %% 1e2, width=2, flag=, mode + =integer) naics2 [1] 21 10 21 11 11 10 99 13 10 15 21 15 15 10 10 [16] 20 No error, as vector naics is a numerical vector. I make it a factor : naics=factor(c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320)) naics2-formatC(naics %% 1e2, width=2, flag=, mode + =integer) Warning message: In Ops.factor(naics, 100) : %% not meaningful for factors naics2 [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [16] NA Which is what you see. You can transform a factor to a numerical vector with a combination of as.numeric(as.character()). This is necessary as you would otherwise get the internal values for the factor levels (i.e. the numbers 1, 2, ... n with n being the number of levels.) naics=factor(c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320)) naics2-formatC(as.numeric(as.character(naics)) %% 1e2, width=2, flag=, mode + =integer) naics2 [1] 21 10 21 11 11 10 99 13 10 15 21 15 15 10 10 [16] 20 __ 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] Selecting initial numerals
Josh, One way would be to convert the numeric vector to a character and use the function substr(). Following code returns a numeric vector with the 2 first digits of every element. naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613,524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) First_Two - as.numeric ( substr ( as.character ( naics ), 1, 2 ) ) First_Two see also ?substr Cheers Joris On Wed, Oct 14, 2009 at 5:05 PM, Josh Roll j_r...@hotmail.com wrote: Joris, I figured out that was my issue. Thanks for your insights. However i need the first two digits of the numeral not the last two. How do i coerce the code to get this outcome. Cheers Date: Wed, 14 Oct 2009 13:50:54 +0200 Subject: Re: [R] Selecting initial numerals From: jorism...@gmail.com To: j_r...@hotmail.com CC: r-help@r-project.org On Tue, Oct 13, 2009 at 6:48 PM, PDXRugger j_r...@hotmail.com wrote: II just want to create a new object with the first two numerals of the data. Not sure why this isnt working, consider the following: EmpEst$naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399, 541613, 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) EmpEst$naics2-formatC(EmpEst$naics %% 1e2, width=2, flag=, mode =integer) #RESULT:Warning message: #In Ops.factor(EmpEst$naics, 100) : %% not meaningful for factors Wild guess : you get this warning EmpEst$naics is a factor? Quite some errors and warnings mean mostly what they say. If you see similar errors or warnings, please use the function str() first to check your data structure. For example : str(EmpEst$naics) You should also make sure you provide us with self contained, reproducible code. As we don't have the dataframe EmpEst, I cannot run the code you sent. If I change it, I don't get the error. Below a few code snippets to illustrate how the problem arises, and how to get it away : naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) naics2-formatC(naics %% 1e2, width=2, flag=, mode + =integer) naics2 [1] 21 10 21 11 11 10 99 13 10 15 21 15 15 10 10 [16] 20 No error, as vector naics is a numerical vector. I make it a factor : naics=factor(c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320)) naics2-formatC(naics %% 1e2, width=2, flag=, mode + =integer) Warning message: In Ops.factor(naics, 100) : %% not meaningful for factors naics2 [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [16] NA Which is what you see. You can transform a factor to a numerical vector with a combination of as.numeric(as.character()). This is necessary as you would otherwise get the internal values for the factor levels (i.e. the numbers 1, 2, ... n with n being the number of levels.) naics=factor(c(238321, 624410, 484121 ,238911, 81, 531110, 621399,541613, + 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320)) naics2-formatC(as.numeric(as.character(naics)) %% 1e2, width=2, flag=, mode + =integer) naics2 [1] 21 10 21 11 11 10 99 13 10 15 21 15 15 10 10 [16] 20 __ 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] Selecting initial numerals
PDXRugger wrote: II just want to create a new object with the first two numerals of the data. Not sure why this isnt working, consider the following: EmpEst$naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399, 541613, 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) EmpEst$naics2-formatC(EmpEst$naics %% 1e2, width=2, flag=, mode =integer) #RESULT:Warning message: #In Ops.factor(EmpEst$naics, 100) : %% not meaningful for factors It always good to make a complete example; the above code does not run. If I do a guess how it could have looked like, there is no warning. Dieter # what is empest? EmpEst = data.frame(x=1:16) EmpEst$naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399, 541613, 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) EmpEst$naics2-formatC(EmpEst$naics %% 1e2, width=2, flag=, mode =integer) # no warning -- View this message in context: http://www.nabble.com/Selecting-initial-numerals-tp25876664p25876826.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] Selecting initial numerals
II just want to create a new object with the first two numerals of the data. Not sure why this isnt working, consider the following: EmpEst$naics=c(238321, 624410, 484121 ,238911, 81, 531110, 621399, 541613, 524210 ,236115 ,811121 ,236115 ,236115 ,621610 ,814110 ,812320) EmpEst$naics2-formatC(EmpEst$naics %% 1e2, width=2, flag=, mode =integer) #RESULT:Warning message: #In Ops.factor(EmpEst$naics, 100) : %% not meaningful for factors EmpEst$naics2-format(EmpEst$naics,trim=FALSE,digits=2,width=2) #RESULT #Changes data to string I know this is super simple but im not sure why i get the error in the first try. Help with some excplanation would be helpful, thanks Cheers -- View this message in context: http://www.nabble.com/Selecting-initial-numerals-tp25876664p25876664.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.