2017-06-15 217 views
0

您可以使用NULL进行替换吗?用NULL替换数据帧中的值

#Data Frame 
a = c("tom", "alex", "chris", "jen", "mary") 
b = c(NA) 
df = data.frame(a,b) 

#Replace Tom with NULL 
df$c <- gsub('tom', NULL, df$a) 

的最后一行代码给我下面的错误:invalid 'replacement' argument。替换为NULL可能吗?我想问的原因是因为我试图将大型数据集上传到postgres中,并且由于空白和NA值而导致某些整数变量被拒绝。谢谢。

+4

不能使用NULL的所有元素。参见'c(1,2,NULL)'。注意NULL被删除。 'df $ c'是同一只野兽。 –

+0

你是如何将数据加载到postgres中的?这可能是解决问题的一条途径。 – thelatemail

+0

我正在通过轨道是csv格式将数据加载到postgres中。 Postgres拒绝使用空白(即“”)或NA的观察值的整型变量。它不会拒绝NULL值,所以我试图用NULL替换我的数据框中的NAs和空格。你认为这是可能的吗? – BlueDevilPride

回答

2

我不完全确定你在问什么。但这里有一些例子,可以帮助

#this replaces tom with NA 
df$c = gsub('tom', NA, df$a) 

NULL vs NA

#this creates a vector of two elements, as NULL is nothing 
d = c("a","b",NULL) 

#this creates a vector with three elements, as NA is blank 
e = c("a","b",NA) 

删除与 “汤姆”

e = df$a[df$a != "tom"] 
+0

我想问一个更好的方法是,R可以保持一个NULL值吗?我可以用NULL替换vector中的值,我相信我刚刚根据这个讨论了解到它不能。 https://www.r-bloggers.com/r-na-vs-null/ – BlueDevilPride