【发布时间】:2013-09-04 12:46:59
【问题描述】:
apply 和 R 3.0.1 有一个奇怪的问题。
我有一个包含文本、数字和逻辑值的巨大数据框。 当我使用 apply 时,逻辑值被转换为 chr,但是因为 R 允许类似 TRUE == "TRUE" 的东西,这不是问题。
但对于某些逻辑值,apply 似乎在前面加上一个空格,并且 TRUE == " TRUE" 返回 NA。当然可以了
sapply(cuelist[,4],FUN=function(logicalvalue) as.logical(sub("^ +", "", logicalvalue)))
但这并不好,我仍然不知道为什么 R 会这样做。
df <- data.frame(test=c("a","b","<",">"),logi=c(TRUE,FALSE,FALSE,TRUE))
apply(df, MARGIN=1, function(listelement) print(listelement) )
有趣的是,这个例子中的空格只出现在 [2,1] 和 [2,4] 上
版本 _
平台 x86_64-w64-mingw32
拱 x86_64
操作系统 mingw32
系统 x86_64、mingw32
状态
专业 3
次要 0.1
2013 年
05月
第 16 天
svn 版本 62743
语言 R
version.string R 版本 3.0.1 (2013-05-16) 昵称好运动
编辑:R 版本 2.15.0 (2012-03-30) 上的相同行为
Edit2:我的数据框像这样
> df
test logi
1 a FALSE
2 b FALSE
3 < TRUE
4 > TRUE
> str(df)
'data.frame': 4 obs. of 2 variables:
$ test: Factor w/ 4 levels "<",">","a","b": 3 4 1 2
$ logi: logi FALSE FALSE TRUE TRUE
【问题讨论】:
-
评论不允许代码。请稍等。
-
@AnandaMahto 查看我编辑的帖子。感谢您的回复!
-
你能发布
print(df, quote = TRUE)的输出吗?