这可能会非常简单,但我是一名初学者,并且一直在寻找文档和其他文档而没有找到答案。数组,矩阵和数据帧对我来说仍然令人困惑。
我想创建一个表或数组,其中每一行都是一个人,而evey列是一个属性(年龄,地址)。我希望能够检索与给定行对应的属性。此外,我希望能够按行输入,而不是按列输入。
我试过了:
j <- list(name="joe", age=22, address="2 Corona street")
k <- list(name="kate", age=33, address="3 Albarn road")
employees <- list(k,l)
然后希望能够检索joe的地址,其名称是变量,使用以下内容:
x <- "joe"
addressToRetrieve <- employees[name=x][address]
我意识到我的语法可能是胡言乱语,但希望足以让我知道我想要实现的目标。
答案 0 :(得分:0)
您正在寻找的是一种叫做类的东西。以下是与R中的类相关的一些资源。
PDF About Methods, Classes, And Objects
此外,您应该能够在任何编程站点上找到关于类的无数资源。
答案 1 :(得分:0)
我建议您使用data.frame
(或data.table
)而不是像您在示例中所做的那样处理嵌套list
- 特别是如果您的数据是&#34;矩形&#34;形式。
如果是这样的话,你可以做以下事情:
employeeDF <- rbind.data.frame(j, k)
employeeDF
# name age address
# 2 joe 22 2 Corona street
# 21 kate 33 3 Albarn road
x <- "joe"
with(employeeDF, employeeDF[name == x, "address"])
# [1] 2 Corona street
# Levels: 2 Corona street 3 Albarn road
如果您要按行输入数据,我建议您在创建初始data.frame
时,确保使用stringsAsFactors = FALSE
,否则可能会遇到尝试添加新值时出现问题。