如何向数据框的每一列添加额外的“属性”?

时间:2015-02-17 11:04:29

标签: r properties dataframe

我有一个数据框,其中有几列看起来像这样(但有更多列):

> df <- data.frame(Var1 = 1:10, Var2 = 11:20, Var3 = 21:30, Var4 = 31:40)
> df
   Var1 Var2 Var3 Var4
1     1   11   21   31
2     2   12   22   32
3     3   13   23   33
4     4   14   24   34
5     5   15   25   35
6     6   16   26   36
7     7   17   27   37
8     8   18   28   38
9     9   19   29   39
10   10   20   30   40

对于某些专栏,我想做一些操作。如何一次只对这些列进行地址处理而不是单独处理每个列?

是否有可能为每列提供“属性”或“标签”(抱歉,我现在没有正确的用语)?

假设Var1和Var2的“property”=“a”,其中Var3和Var4的“property”=“b”。

然后我可以做类似

的事情
if (property of column = "a"){column with property a * 2}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

  

对于某些专栏,我想做一些操作。我怎么能地说   只列出那些列,而不是在每个列处寻址   它自己的?

为什么不将这些列放在另一个向量中,然后可以将其用于列子集,如下所示:

df <- data.frame(Var1 = 1:10, Var2 = 11:20, Var3 = 21:30, Var4 = 31:40)
cols <- c("Var1", "Var2")
df[, cols] <- sapply(df[, cols], "*", 2)
df
#    Var1 Var2 Var3 Var4
# 1     2   22   21   31
# 2     4   24   22   32
# 3     6   26   23   33
# 4     8   28   24   34
# 5    10   30   25   35
# 6    12   32   26   36
# 7    14   34   27   37
# 8    16   36   28   38
# 9    18   38   29   39
# 10   20   40   30   40