[R] struggling with pairlists
Wacek Kusnierczyk
Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Fri Mar 20 19:13:36 CET 2009
mauede at alice.it wrote:
> I would like to create a vector of pairlist (flag, binary_value) like:
>
> (variable ="TrendOff", value = 0)
> (variable ="MOdwt", value = 1)
> (variable ? "ZeroPadding", value =1)
> ................................................
>
> I tried the following syntax but the emcompassing list (that I called "flags") is not made up of pairlists. Instead it is
> made up of two apparently disjoint lists:
>
>
>
>> flags_val <- c( 0,1,1,1,4,1,1,1,4,1,1,1,4,1,1,1,4,1,1)
>> flags_nam <- c("TrendOff","MOdwt","ZeroPadding",
>>
> + "Step1HSOff","Step1NumHSOff","Step1NumHSOff","Step1ExtOff",
> + "Step2HSOff","Step2NumHSOff","Step2NumHSOff","Step2ExtOff",
> + "Step3HSOff","Step3NumHSOff","Step3NumHSOff","Step3ExtOff",
> + "Step4HSOff","Step4NumHSOff","Step4NumHSOff","Step4ExtOff" )
>
>> flags_nam
>>
> [1] "TrendOff" "MOdwt" "ZeroPadding" "Step1HSOff" "Step1NumHSOff" "Step1NumHSOff"
> [7] "Step1ExtOff" "Step2HSOff" "Step2NumHSOff" "Step2NumHSOff" "Step2ExtOff" "Step3HSOff"
> [13] "Step3NumHSOff" "Step3NumHSOff" "Step3ExtOff" "Step4HSOff" "Step4NumHSOff" "Step4NumHSOff"
> [19] "Step4ExtOff"
>
>> flags <- pairlist (data = flags_val, variable = flags_nam)
>> flags
>>
> $data
> [1] 0 1 1 1 4 1 1 1 4 1 1 1 4 1 1 1 4 1 1
>
> $variable
> [1] "TrendOff" "MOdwt" "ZeroPadding" "Step1HSOff" "Step1NumHSOff" "Step1NumHSOff"
> [7] "Step1ExtOff" "Step2HSOff" "Step2NumHSOff" "Step2NumHSOff" "Step2ExtOff" "Step3HSOff"
> [13] "Step3NumHSOff" "Step3NumHSOff" "Step3ExtOff" "Step4HSOff" "Step4NumHSOff" "Step4NumHSOff"
> [19] "Step4ExtOff"
>
>
> Please, can someone teach me how to create a vector of pairlists ?
> I could find no illustrating on-line example.
> Thank you very much.
>
not sure if you need pairlists; as far as i understand, you need a list
of two-element tuples where the elements in each tuple are of difefernt
types (character and numeric).
once you have the two original vectors, there are a number of
approaches; e.g., create a list of lists:
# dummy data
variables = letters[1:5]
values = 1:5
output = mapply(
function(variable, value)
list(variable=variable, value=value),
variables, values, SIMPLIFY=FALSE)
# a list of lists, where each sublist contains a variable
output$a
# list of "a" and 1
output$a$variable
# "a"
output[[1]]$value
# 1
(note the fancy 'SIMPLIFY').
but you'd probably find it convenient to use a data frame:
# dummy data
variables = letters[1:5]
values = 1:5
output = data.frame(variable=variables, value=values,
stringsAsFactors=FALSE)
# a data frame with variables and values in separate columns
output$variables
# "a" "b" "c" "d" "e"
output[1,]
# one-row data frame with "a" and 1
output[1,]$variable
# "a"
vQ
More information about the R-help
mailing list