Jos*_*chi 10 r dataframe sapply
我想学习如何在我的数据帧的特定列上应用函数,而不"排除"我的df中的其他列.例如,我想将一些特定列乘以1000,并保留其他列.
使用sapply函数,例如:
a<-as.data.frame(sapply(table.xy[,1], function(x){x*1000}))
Run Code Online (Sandbox Code Playgroud)
我得到新的数据帧,第一列乘以1000,但没有我在操作中没有使用的其他列.所以我的尝试就是这样做:
a<-as.data.frame(sapply(table.xy, function(x) if (colnames=="columnA") {x/1000} else {x}))
Run Code Online (Sandbox Code Playgroud)
但是这个没用.
我的解决方法是为两个数据帧提供另一行ID,然后将旧数据框与新创建的数据框合并以获得完整的数据帧.但我认为必须有更好的解决方案.不是吗?
如果您只想对一个或几个列进行计算,您可以使用transform或只是手动索引:
# with transfrom:
df <- data.frame(A = 1:10, B = 1:10)
df <- transform(df, A = A*1000)
# Manually:
df <- data.frame(A = 1:10, B = 1:10)
df$A <- df$A * 1000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12921 次 |
| 最近记录: |