rdata:迭代数据帧列名的方法?
我有大约30行代码可以做到这一点(获得Z分数):rdata:迭代数据帧列名的方法?,r,rdata,R,Rdata,我有大约30行代码可以做到这一点(获得Z分数): 谢谢你的朋友。我认为你是对的,apply()可能是一个不错的选择 例如: data <- array(1:20, dim=c(4, 5)) data.zscores <- apply(data, 2, function(x) (x-mean(x, na.rm = TRUE))/sd(x, na.rm = TRUE)) dataAdata.frame是一个列表,因此您可以使用lappy。不要在数据框上使用应用,因为这将强制使
谢谢你的朋友。我认为你是对的,apply()可能是一个不错的选择 例如:
data <- array(1:20, dim=c(4, 5))
data.zscores <- apply(data, 2, function(x)
(x-mean(x, na.rm = TRUE))/sd(x, na.rm = TRUE))
dataAdata.frame
是一个列表,因此您可以使用lappy
。不要在数据框上使用应用
,因为这将强制使用矩阵
lapply(data, function(x) (x - mean(x,na.rm = TRUE))/sd(x, na.rm = TRUE))
或者您可以使用scale
对向量执行此计算
lapply(data, scale)
您可以直接翻译python
风格的方法
for(col in names(data)){
data[[col]] <- scale(data[[col]])
}
for(名称中的列(数据)){
数据[[col]]查看此项
我遍历数据帧以识别NA行
for(i in names(houseDF)){
print(i)
print(nrow(houseDF[is.na(houseDF[i]),]))
print("---------------------")
}
您需要查看colMeans
and.usinglappy返回一个列表,以便返回一个数据帧:data.frame(lappy(data,scale))
for(col in names(data)){
data[[col]] <- scale(data[[col]])
}
for(i in names(houseDF)){
print(i)
print(nrow(houseDF[is.na(houseDF[i]),]))
print("---------------------")
}