ipa*_*wan 3 r transformation matrix
我在R中有一个2D列联表; 它是一个表对象.我想通过在每个元素上应用函数将其转换为新表.我查看了sapply,tapply等,但它们都旨在总结/汇总数据.我已经编写了自己的映射函数来执行此操作,我将在下面重现:
map.table = function(t,fn)
{
rows = dim(t)[1]
columns = dim(t)[2]
x = matrix(nrow=rows, ncol=columns)
rownames(x) = unlist(dimnames(bush.t)[1], use.names=FALSE)
colnames(x) = unlist(dimnames(bush.t)[2], use.names=FALSE)
for(row in seq(from=1, to=rows))
{
for(column in seq(from=1, to=columns))
{
x[row,column] = fn(t[row,column])
}
}
as.table(x)
}
Run Code Online (Sandbox Code Playgroud)
这将从头开始创建矩阵,填充维名称和元素.有没有更好的方法呢?是否有R功能/包已经具备此功能?
您可以使用apply:
set.seed(21)
x <- data.frame(a=sample(letters[1:5],20,TRUE),
b=sample(letters[1:5],20,TRUE))
y <- table(x)
z <- as.table(apply(y, 1:2, sqrt))
Run Code Online (Sandbox Code Playgroud)