R的新手。
我有一列同时包含负数和正数。我想将所有负数更改为正数,因为它们被错误地分配为负数。如何在将所有其他列保留在数据框中的同时做到这一点?
使用df_Test <-lapply(df $ column,abs)仅返回一个列表,但是我想只用绝对值替换该列,或者用绝对值创建一个新列。
我一直在尝试一个小时,这让我发疯了。值得注意的是,我的数据框不仅是数字的。任何帮助表示赞赏。
答案 0 :(得分:0)
您可以直接在特定列上直接调用abs()
:
df_Test <- df
df_Test$column <- abs(df_Test$column)
答案 1 :(得分:0)
也许您可以尝试以下任一方法
sign(df)*df
或
abs(df)
给出
x y
1 0.6264538 1.51178117
2 0.1836433 0.38984324
3 0.8356286 0.62124058
4 1.5952808 2.21469989
5 0.3295078 1.12493092
6 0.8204684 0.04493361
7 0.4874291 0.01619026
8 0.7383247 0.94383621
9 0.5757814 0.82122120
10 0.3053884 0.59390132
虚拟数据
df <- structure(list(x = c(-0.626453810742332, 0.183643324222082, -0.835628612410047,
1.59528080213779, 0.329507771815361, -0.820468384118015, 0.487429052428485,
0.738324705129217, 0.575781351653492, -0.305388387156356), y = c(1.51178116845085,
0.389843236411431, -0.621240580541804, -2.2146998871775, 1.12493091814311,
-0.0449336090152309, -0.0161902630989461, 0.943836210685299,
0.821221195098089, 0.593901321217509)), class = "data.frame", row.names = c(NA,
-10L))