在R中创建与之相关的新变量

时间:2012-06-02 23:34:57

标签: r

我在excel电子表格中有7个不同的变量,我已导入到R.它们每个都是大小为3331的列。它们是:

'Tribe' - there are 8 of them
'Month' - when the sampling was carried out
'Year' - the year when the sampling was carried out
'ID" - an identifier for each snail
'Weight' - weight of a snail in grams
'Length' - length of a snail shell in millimetres
'Width' - width of a snail shell in millimetres

这是一个案例,要求8个不同的部落记录怀疑濒临灭绝的蜗牛种类的数据,以确定它们是否越来越稀少,或者尺寸或重量发生变化。 这种情况发生在1993年至1998年的不同频率上。

我想知道如何能够为数据创建一个新变量,这样如果我输入名称(Snails)#那么它会列出7个给定变量以及我拥有的任何添加变量。

数据集仅限于我想添加新变量的位置。比如,知道每个月蜗牛的数量。

这将依赖于我使用 - Tribe,Month,Year和ID。如果根据任何给定月份的费率列出了ID(蜗牛标识符),那么我可以将它们相加以查看计数是否有任何变化。我试过了:

count=c(Tribe,Year,Month,ID)
count

但是,在做完这样的事情后,R只有一个大的列表,它是数据集大小的4倍。我希望能够创建一个列大小为n = 3331的给定新变量。

或者我想创建一个更简单的变量,这样我就可以看到在任何给定月份是否收集了一个部落。我不知道怎么做到这一点。

我已经查看了其他论坛并进行了搜索但是,在我的案例中,我看不到任何可以帮助我的内容。我感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:2)

我猜您需要在单个结构中组织变量,例如data.frame。 有关帮助文件,请参阅?data.frame

为了帮助您入门,您可以执行以下操作:

snails <- data.frame(Tribe,Year,Month,ID)
snails
# or for just the first few rows
head(snails)

然后,这将使您的数据看起来类似于您的Excel文件,如:

   Tribe Year Month ID
1      1    1     1  a
2      2    2     2  b
3      3    3     3  c
<<etc>>

然后,如果你names(snails),它会列出你的列名。

您可以直接从Excel导入Excel文件,或者首先保存为csv(逗号分隔值)文件,然后使用read.csv("name_of_your_file.csv")来避免这种问题。 有关详细信息,请参阅http://www.statmethods.net/input/importingdata.html

要将数据制成表格,您可以执行以下操作:

table(snails$Tribe)

...查看每个部落收集的蜗牛记录数量。还是......

table(snails$Tribe,snails$Year)

......每年查看每个部落的趋势。 $字符将允许您以与当前使用自由浮动变量相同的方式访问data.frame中的命名变量(列)。这可能看起来像最初的工作,但是当你需要做一些更复杂的分析时,它会有很大的回报。

例如,如果您只想分析部落“1”的权重,您可以这样做:

snails$Weight[snails$Tribe==1]
# mean of these weights
mean(snails$Weight[snails$Tribe==1])

我可以解释更多的东西,但是你可以通过在这里阅读像Quick-R这样的优秀网站来获得更好的服务:http://www.statmethods.net/management/index.html让你做一些更高级的分析和绘图。