R:对特定列应用函数,保留数据帧的其余部分
我想学习如何在数据帧的特定列上应用函数,而不从df中“排除”其他列。例如,我想将一些特定的列乘以1000,并保持其他列不变 使用sapply函数,例如:R:对特定列应用函数,保留数据帧的其余部分,r,dataframe,sapply,R,Dataframe,Sapply,我想学习如何在数据帧的特定列上应用函数,而不从df中“排除”其他列。例如,我想将一些特定的列乘以1000,并保持其他列不变 使用sapply函数,例如: a<-as.data.frame(sapply(table.xy[,1], function(x){x*1000})) a<-as.data.frame(sapply(table.xy, function(x) if (colnames=="columnA") {x/1000} else {x})) a如果您只想
a<-as.data.frame(sapply(table.xy[,1], function(x){x*1000}))
a<-as.data.frame(sapply(table.xy, function(x) if (colnames=="columnA") {x/1000} else {x}))
a如果您只想对一列或几列进行计算,您可以使用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
#带transfrom:
df以下代码将只对指定的列应用所需的函数。
我将创建一个简单的数据框作为可复制的示例
(df <- data.frame(x = 1, y = 1:10, z=11:20))
(df <- cbind(df[1], apply(df[2:3],2, function(x){x*1000})))
(df在dplyr
中,我们将使用mutate_at
,您可以在其中选择或排除(通过在变量名称前面加“-”减号)特定变量。
您可以只命名一个函数
df%
在(变量(列)、刻度)处进行变异
或者创造你自己的
df%
在(vars(columnA,columnC),function(x){do this})
如果我有很多列(n=30),我该怎么做?键入所有的名称将是太多的工作了…是的,实际上我总是这样对数据帧进行计算:谢谢你的评论,但是谢谢!我正在寻找类似这样的东西和cbind()
工作正常。