Extracting the first element of a list
Dear Kevin,
At 10:48 PM 3/27/2002 +1200, Ko-Kang Kevin Wang wrote:
For the first element of a list L: L[[1]] For the first elements of all elements (vector) of the list: lapply(L, function(x) x[1])
So, suppose I've got a vector called foo, which has elements as follows: 305 159 251 215 101 224 306 199 194 325 329 221 318 238 17 .... (the rest omittied) And suppose I want to extract out the first digit of each number, so like: 3 1 2 2 1 2 3 1 1 3 3 2 3 2 1... Do I still use lapply(foo, function(x) x[1]) it doesn't seem to work...
The lapply function takes a list as its first argument, and a vector of
numbers isn't a list; moreover, each number isn't a vector a individual
digits that can be extracted by subscripting.
You could use something like the following:
> x <- c(1, 23, 456, 7890)
> x %/% 10^floor(log(x, 10))
[1] 1 2 4 7
If there are negative entries in x, use abs(x).
I hope that this helps,
John
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
-----------------------------------------------------
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._