我是R的新手,我正在努力完成以下任务:
对于第2列中的每个唯一值,确定第1列中相应值的等于e的比例。例如,x
是第2列中的唯一值,显示10次。在10次出现中,有6个,其中第1列中的对应值为e,因此x
返回的值应为0.6。接下来,代码应该检查b
,s
,然后f
等。
Col 1 Col 2
p x
e x
e b
p x
e x
e x
e b
e b
p x
e b
e x
e x
e b
p x
e x
e s
e f
我的尝试如下:
# figure out how many unique values there are in column 2
n_unique <- 1:(nunique (data[,2]))
# Assign the unique values to a vector, and then run my desired calculation
my_calc <- function(x){
unique_val <- data[,2]
if(data[,2] = unique_val[x]){
result <- ("count occurrences of e"/"total occurrences")
} else {
return (NA)
}
# loop "my_calc" for each unique value in column 2
sapply(n_unique, my_calc)
答案 0 :(得分:0)
我想您要计算列中所有唯一值组合的比例。您可以使用table
和prop.table
:
prop.table(table(dat), 2)
Col2
Col1 b f s x
e 1.0 1.0 1.0 0.6
p 0.0 0.0 0.0 0.4
其中dat
是数据框的名称。在结果的每一列中,值总和为一。