的R - 在矢量
问题描述:
上因素试图编辑字符串的错误我的基本语法的在R.的R - 在矢量
一个简单的误解我有长度145的矢量title
我尝试设置高于阈值top
(所有值= 50)至" "
。 然而,当我把
title[(top+1):length(data.[,1])]
我得到一个错误
Warning message:
In `[<-.factor`(`*tmp*`, (top + 1):length(data[, 1]), value = " ") :
invalid factor level, NA generated
我应该怎么做是正确的?
编辑:
我使用的解决方法是: title <- c(title[1:top],replicate(length(title)-top,""))
数据例如:
title <- unlist(data[,1])
> head(title)
[1] Shanghai Yantian Busan Ningbo Hong Kong Kaohsiung
262 Levels: Aarhus Abidjan Acajutla Adelaide Agadir Ahus Algeciras Anguilla Antofagasta Antwerp Apia Apra (Agana) Aqaba (El Akaba) Arica ... Zeebrugge
> length(data[,1])
[1] 145
答
你会得到同样的错误与
x <- factor(letters[1:3]);
x[3] <- " "
# Warning message:
# In `[<-.factor`(`*tmp*`, 3, value = " ") :
# invalid factor level, NA generated
你得到一个警告(不是错误),您正在尝试一个新的水平增加的一个因素。当你创建一个因子时,R假定你已经指定了所有的级别(在这种情况下,x
只需要“a”,“b”或者“c”的值。如果你想允许其他值,你可以指定他们在levels=
参数
x <- factor(letters[1:3], levels=c(letters[1:3]," "))
x[3] <- " "
# no error
+0
哇,它为什么这么复杂?我有点惊讶,谢谢! – Ilja
你有一个因素列错误说:另外,用括号左右'(1:length' – akrun
不要紧,即使我写的'标题[顶+ 1: (data [,1]) - top]',我得到相同的错误 – Ilja
然后,考虑给别人展示一些可重复的例子来测试 – akrun