如果 R 数据框中的某些列属于分类,如何找到列中每个值的余弦?

r programmingserver side programmingprogramming更新于 2025/4/8 14:07:17

如果 R 数据框中的某些列属于分类,要找到列中每个值的余弦,我们可以按照以下步骤操作 −

  • 首先,创建一个数据框。

  • 然后,使用 plyr 包中的 numcolwise 函数找到列中每个值的余弦,如果某些列属于分类。

示例

创建数据框

让我们创建一个如下所示的数据框 −

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-sample(1:5,25,replace=TRUE)
DV2<-sample(1:5,25,replace=TRUE)
df<-data.frame(Level,Group,DV1,DV2)
df

输出

执行时,上述脚本会生成以下输出(由于随机化,此输出将因您的系统而异) −

   Level   Group  DV1 DV2
1  medium  first  3    3
2  medium  second 5    3
3  low     first  5    4
4  low     second 4    3
5  medium  first  1    3
6  medium  first  2    1
7  medium  second 3    5
8  low     second 4    1
9  low     second 2    1
10 medium  first  1    5
11 high    first  2    4
12 medium  second 5    1
13 medium  second 5    1
14 high    first  5    3
15 low     first  2    5
16 high    first  1    1
17 low     second 4    2
18 high    second 1    5
19 medium  second 3    2
20 medium  second 1    2
21 high    second 5    2
22 medium  second 1    4
23 low     second 3    1
24 medium  first  5    5
25 low     first  5    1

如果某些列是分类的,则求出列中每个值的余弦

如果数据框 df 中的某些列是分类的,则使用 plyr 包中的 numcolwise 函数求出列中每个值的余弦 −

Level<-sample(c("low","medium","high"),25,replace=TRUE)
Group<-sample(c("first","second"),25,replace=TRUE)
DV1<-sample(1:5,25,replace=TRUE)
DV2<-sample(1:5,25,replace=TRUE)
df<-data.frame(Level,Group,DV1,DV2)
library(plyr)
numcolwise(cos)(df)

输出

      DV1        DV2
1   0.5403023  -0.4161468
2  -0.4161468   0.2836622
3   0.2836622  -0.4161468
4  -0.6536436  -0.9899925
5   0.5403023   0.5403023
6  -0.9899925  -0.9899925
7  -0.6536436   0.5403023
8   0.2836622  -0.4161468
9   0.2836622   0.5403023
10 -0.4161468   0.5403023
11 -0.9899925  -0.6536436
12  0.5403023  -0.9899925
13 -0.4161468  -0.4161468
14  0.2836622   0.2836622
15  0.2836622  -0.4161468
16  0.2836622  -0.9899925
17 -0.9899925  -0.4161468
18 -0.9899925   0.2836622
19  0.2836622   0.2836622
20 -0.6536436  -0.9899925
21 -0.6536436   0.5403023
22 -0.9899925   0.2836622
23 -0.4161468  -0.9899925
24  0.2836622   0.2836622
25 -0.6536436  -0.4161468

相关文章