Give name to list variable

so we know that R have list() variable, and also know that R has function call names() to give names for variable. For example :

a=30
names(a)="number"
a
# number
# 30

But now, I want to give a list variable a name, like this :

b=list()
names(b)="number"

and it returns error message like this :

Error in names(b) = "number" : 
'names' attribute [1] must be the same length as the vector [0]

What I have suppose to do? I do this because I need many list variables. Or, do you have another way so I can make many list variables without playing with its name?

Since @akrun doesn't need any more points, here is an example showing how you can assign names to a list:

lst <- list(a="one", b="two", c=c(1:3))
names(lst)
[1] "a" "b" "c"
names(lst) <- c("x", "y", "z")

> lst
$x
[1] "one"

$y
[1] "two"

$z
[1] 1 2 3

Learn with the list examples with the results given in the output section. Create your own list variable with the elements and operate with the different methods given here. So, let’s start learning each section one by one below. What is List Variable in Python. A list variable is a collection of elements of different data types.

It seems as though you are interested in labeling the object itself rather than the elements in it. The key is that the names attribute for a list object is necessarily assigned to its elements. One option, since you said you have many list objects, is to store the lists in a big list and then you can assign names to the big list, and the elements within the list-objects can be named too.

allLists <- list('number' = list())

> allLists
$number
list()

Another option, you can make use of the label feature in the Hmisc package. It modifies most common objects in R to have a subclass "labelled" and so whenever you print the list it shows the label. It is good for documentation and organizing the workspace a bit better, but caveat it's very easy to accidentally cast labelled objects to a non-labelled class and to confuse methods that don't think to search for more than one class.

library(Hmisc)
p <- list()
label(p) <- 'number'

> p
number
list()

Another option is to make the "name" of your list object an actual element of the list. You'll see in a lot of complex R data structures, this is the preferred way of storing labels, titles, or names when such a need arises and isn't met by the base R data structure.

b <- list('name' = 'number')

The last possibility is that you need a placeholder to store the "names" attribute of the elements you haven't yet populated the list with. If the elements are of known length and of known type, you can allocate such a vector using e.g. numeric(1) a sort-of "primed" vector which can be named. If you don't know the data structure of your output, I would not use this approach since it can be a real memory hog to "build" data structures in R.

I am afraid that filling in the variable in the List name is not feasible for Create item and Update item. Because these two actions need to determine the list name to get the fields that need to be created or updated.

Other possibilities are

as.list(a)
# $`number`
# [1] 30

# or
setNames(list(unname(a)),'number')
# $`number`
# [1] 30

# or named list with named vector
setNames(list(a), 'number')
# $`number`
# number 
# 30

Use the _NUMERIC_, _CHARACTER_, and _ALL_ keywords to specify variables of a certain type (numeric or character) or all types. Use a single hyphen (-) to specify a range of variables that have a common prefix and a sequential set of numerical suffixes. Use the colon operator (:) to specify a list of variables that begin with a common prefix.

You will get all the elements of the list element except the last one. myList = ['Ram', 'Shyam', 10, 'Bilal', 13.2, 'Feroz']; for x in range (len (myList)-1): print (myList [x]) 1. 2. 3. myList = ['Ram', 'Shyam', 10, 'Bilal', 13.2, 'Feroz']; for x in range(len(myList) - 1): print(myList[x]) Output.

Variables . A variable is a symbolic name for (or reference to) information. The variable's name represents what information the variable contains. They are called variables because the represented information can change but the operations on the variable remain the same.

who -file filename lists the variable names in the specified MAT-file. who global lists the variable names in the global workspace.

Comments
  • In the previous case, it has a length of 1, in the list it is of 0 length. If you do b = list(30); names(b) <- 'number' should work
  • thank you, it's work!
  • I think this was actually the answer the question that was actually asked.
  • I have a question: I have a nested list of a list (2 lists so far) there there some way to name the second list inside the list with something like: names(list[2]) <- "nameoflist"