我有一个如下所示的数据集:
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
我该怎么做?
答案 0 :(得分:4)
将C列乘以10.假设您的data.frame
被称为myData
:
myData$C <- myData$C*10
答案 1 :(得分: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)
或使用mutate
包中的plyr
。这比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)
答案 2 :(得分:2)
如果您的数据是数字,那么mrdwab的建议是最好的:
myData $ C&lt; - myData $ C * 10
此样式适用于“data.frame”。因此,如果您将数据保存在矩阵中,则应使用:
myData [,3] = myData [,3] * 10
最后,如果您的数据不是NUMERIC(字符),则可以按以下方式操作:
myData $ C = paste(myData $ C,“0”,sep =“”)