在R中采用立方根和对数转换

时间:2017-11-28 22:21:14

标签: r logging transform cube

我有一个表格,其行名称对应于一组人及其相应的体重估计值。例如,用这些值表示矩阵“质量估计”:

   Name      Mass
1 person_a   234
2 person_b   190
3 person_c   203
4 person_d   176

我将如何在一行R代码中获取群体的立方根,然后对其进行对数转换?

我不知道如何以表格格式询问上述数据,因为最后一个问题只能在一行上显示。第一列读取“名称”,第二列读取“质量”。每行都有一个名称(person_a)和质量(234)。

谢谢!

2 个答案:

答案 0 :(得分:1)

# Sample matrix
mat <- matrix(runif(20), ncol = 5);

# log10-transform the cube root of all entries
mat.trans <- log10(mat^(1/3))

或使用您的dataframe示例(matrix相同):

df <- read.table(text = 
    "Name      Mass
    1 person_a   234
    2 person_b   190
    3 person_c   203
    4 person_d   176", sep = "");

# log10-transform the cube root
df$transMass <- log10(df$Mass^(1/3));
#      Name Mass transMass
#1 person_a  234 0.7897386
#2 person_b  190 0.7595845
#3 person_c  203 0.7691653
#4 person_d  176 0.7485042

答案 1 :(得分:1)

假设您拥有数据框df和名为Mass的变量,您可以使用此功能:

df$New<-log10(df$Mass^(1/3))