0

我有一个如下所示的数据集:

   A  B  C   D
1. 5  4  4   4
2. 5  4  4   4
3. 5  4  4   4
4. 5  4  4   4
5. 5  4  4   4
6. 5  4  4   4
7. 5  4  4   4

我想为 C 列中的所有变量添加一个“零”。例如,像这样:

   A  B  C   D
1. 5  4  40  4
2. 5  4  40  4
3. 5  4  40  4
4. 5  4  40  4
5. 5  4  40  4
6. 5  4  40  4
7. 5  4  40  4

我该怎么做呢?

4

3 回答 3

4

我真的不喜欢不断地引用来myData$A引用该A列。一个不错的替代表达是使用within

myData = within(myData, {
   C = C * 10
   D = D + 4
   E = C + D
 })

特别是当需要在同一个中完成更多的列操作时,data.frame我更喜欢这种语法。甚至更好:

myData = transform(myData, C = C * 10, D = D + 4, E = C + D)

mutateplyr包装中使用。与它迭代工作相比,这具有优势transform,允许您使用新创建的列:

# fails
myData = transform(myData, C = C * 10, new_col = C + 4, even_newer = new * 3) 
#works  
myData = mutate(myData, C = C * 10, new_col = C + 4, even_newer = new * 3)
于 2012-09-08T11:01:45.093 回答
4

只需将 C 列乘以 10。假设您data.frame的名称为myData

myData$C <- myData$C*10
于 2012-09-08T04:16:05.440 回答
2

如果您的数据是数字,mrdwab 的建议是最好的:

我的数据$C <- 我的数据$C*10

这种风格适用于“data.frame”。因此,如果您将数据保存在矩阵中,您应该使用:

我的数据[,3] = 我的数据[,3] * 10

最后,如果您的数据不是数字(字符),您可以执行以下操作:

myData$C = paste(myData$C, "0", sep="")

于 2012-09-09T14:01:19.863 回答